Всем привет! Сегодня поговорим о тернарном операторе в
Swift. Это одна из тех фич, которые делают код лаконичнее, но требуют аккуратного использования.
Тернарный оператор - это компактная замена конструкции
if-else когда нужно просто выбрать одно из двух значений. Синтаксис такой:
<условие> ? <значение если true> : <значение если false>
Тернарный оператор идеально подходит для простых присваиваний:
// Без использования тернарного оператора
let accessLevelText: String
if user.isAdmin {
accessLevelText = "admin"
} else {
accessLevelText = "user"
}
// С использованием тернарного оператора
let accessLevelText = user.isAdmin ? "admin" : "user"
Тернарные операторы в SwiftUI:
В
SwiftUI это вообще мастхэв для условного применения модификаторов:
Text("Привет!")
.foregroundColor(isError ? .red : .primary)
Вложенные тернарные операторы:
Не стоит использовать вложенные тернарные операторы:
let priceColor = isOnSale ? (isAlmostSoldOut ? .red : .orange) : .black
Такой код превращается в головоломку. Лучше использовать обычный
if-else или вынести логику в вычисляемое свойство.
Альтернатива: If-expression:
В
Swift 5.9 появились
if выражения, которые часто читаются лучше чем тернарные операторы:
// Тернарный оператор
let status = isActive ? "online" : "offline"
// If-expression (более читаемо для сложных случаев)
let status = if isActive {
"online"
} else {
"offline"
}
Вывод:
Тернарный оператор - это отличный инструмент, который экономит место и время. Но как с любым мощным инструментом, главное не переусердствовать и помнить о читаемости кода.