Сообщение Re[17]: Как объяснить падение популярности .net? от 12.12.2019 12:40
Изменено 12.12.2019 12:56 zverjuga
Re[17]: Как объяснить падение популярности .net?
Здравствуйте, Mamut, Вы писали:
M>Они просто не осилили ни нормальный if (if не умеет делать проверку на nil)
ты в своем уме? никто тебе не мешает делать эту проверку
guard тебя избавляет от принудительного излечения значения из оптиональной переменной, так как он уже это сделал + проверка на нуль
можно вместо него использовать обычный let. в зависимости от ситуации используются либо let, либо guard, смотря что нужно
M>Да даже Java с x.filter(x => x > 10).orElseThrow(...) для Optional'ов лучше и адекватнее этого убожества.
ну это вообще капец. оказывается, что лучше использовать фильтр, чем просто lete
M>Они просто не осилили ни нормальный if (if не умеет делать проверку на nil)
ты в своем уме? никто тебе не мешает делать эту проверку
if x != nil {
x!.description // только тут придется использовать принудительное извлечение
или
x?.description // эти два примера в данном конкретном случае практически равносильны
}
guard тебя избавляет от принудительного излечения значения из оптиональной переменной, так как он уже это сделал + проверка на нуль
guard let x = x
можно вместо него использовать обычный let. в зависимости от ситуации используются либо let, либо guard, смотря что нужно
if let x = x {
x.description
}
M>Да даже Java с x.filter(x => x > 10).orElseThrow(...) для Optional'ов лучше и адекватнее этого убожества.
ну это вообще капец. оказывается, что лучше использовать фильтр, чем просто lete
x.filter(x => x > 10).orElseThrow(...) // тут еще проверки на нуль не хватает
или
let x = x where x > 0 {
}
Re[17]: Как объяснить падение популярности .net?
Здравствуйте, Mamut, Вы писали:
M>Они просто не осилили ни нормальный if (if не умеет делать проверку на nil)
ты в своем уме? никто тебе не мешает делать эту проверку
guard тебя избавляет от принудительного излечения значения из оптиональной переменной, так как он уже это сделал + проверка на нуль
можно вместо него использовать обычный let. в зависимости от ситуации используются либо let, либо guard, смотря что нужно
M>Да даже Java с x.filter(x => x > 10).orElseThrow(...) для Optional'ов лучше и адекватнее этого убожества.
ну это вообще капец. оказывается, что лучше использовать фильтр, чем просто lete
let и guard
1. гарантируют, что x не нулевая. то есть после них ты можешь использовать x без опасений, что там может оказаться нуль и избавить от дополнительных проверок
2. производят принудительное извлечение из оптиональной переменной в новую переменную, которая далее уже и используется
проверку на нуль можно делать и при помощи обычного if, только он делает только одну проверку, но не извлекает значение из оптионала. то есть при if тебе все равно где то придется завести новую переменную и в нее скопировать значение
M>Они просто не осилили ни нормальный if (if не умеет делать проверку на nil)
ты в своем уме? никто тебе не мешает делать эту проверку
if x != nil {
x!.description // только тут придется использовать принудительное извлечение
или
x?.description // эти два примера в данном конкретном случае практически равносильны
}
guard тебя избавляет от принудительного излечения значения из оптиональной переменной, так как он уже это сделал + проверка на нуль
guard let x = x
можно вместо него использовать обычный let. в зависимости от ситуации используются либо let, либо guard, смотря что нужно
if let x = x {
x.description
}
M>Да даже Java с x.filter(x => x > 10).orElseThrow(...) для Optional'ов лучше и адекватнее этого убожества.
ну это вообще капец. оказывается, что лучше использовать фильтр, чем просто lete
x.filter(x => x > 10).orElseThrow(...) // тут еще проверки на нуль не хватает
или
let x = x where x > 0 {
}
let и guard
1. гарантируют, что x не нулевая. то есть после них ты можешь использовать x без опасений, что там может оказаться нуль и избавить от дополнительных проверок
2. производят принудительное извлечение из оптиональной переменной в новую переменную, которая далее уже и используется
проверку на нуль можно делать и при помощи обычного if, только он делает только одну проверку, но не извлекает значение из оптионала. то есть при if тебе все равно где то придется завести новую переменную и в нее скопировать значение