Всем привет! Сегодня поговорим о тернарном операторе в 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"
}
💡 Вывод:
Тернарный оператор - это отличный инструмент, который экономит место и время. Но как с любым мощным инструментом, главное не переусердствовать и помнить о читаемости кода.
➡️ Подписаться на канал
Мобильный трудоголик