Добавить объявление

Swift: как сделать код лаконичнее с тернарным оператором

Всем привет! Сегодня поговорим о тернарном операторе в 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"
}

Вывод:


Тернарный оператор - это отличный инструмент, который экономит место и время. Но как с любым мощным инструментом, главное не переусердствовать и помнить о читаемости кода.
08.10.2025 10 466