Есть ли способ в Swift назначить условные выражения, подобные этимНазначить условное выражение в Swift?
let foo = if (bar == 2) {
100
} else {
120
}
(или с корпусом выключателя).
(Не нужно использовать для этого тройной оператор).
Этот тип присвоения хорош для функционального стиля/неизменности. В этом случае выражения имеют возвращаемое значение.
Примечание: это общий вопрос, это просто упрощенный пример, представьте, например. случай переключения с большим количеством значений, соответствие шаблонов и т. д. Вы не можете сделать это с помощью тройного оператора.
Кстати, также следует отметить, что существуют языки, которые не поддерживают тернарный оператор, потому что если else возвращает значение, то это необязательно, см., Например, Scala.
«Не хочу использовать тройной оператор для этого» Что ?! Зачем? – Biffen
Потому что тернарный оператор может стать быстро нечитаемым и, скорее, негибким (по сравнению, по крайней мере, с корпусом коммутатора). – Ixx
почему бы и нет: 'let foo = (bar == 2)? 100: 120'? – holex