Информация об изменениях

Сообщение Re[17]: Как объяснить падение популярности .net? от 12.12.2019 12:40

Изменено 12.12.2019 12:43 zverjuga

Re[17]: Как объяснить падение популярности .net?
Здравствуйте, Mamut, Вы писали:

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 {
}
Re[17]: Как объяснить падение популярности .net?
Здравствуйте, Mamut, Вы писали:

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 {
}