Тернарный условный оператор и оператор ??
Тернарный условный оператор
Проверку на выполнение условий можно записать со помощью условного оператора if else
// // proSwift.ru // // Swift 3 if batteryLow { replaceBattery() } else { plugAndPlay() }
Тут все просто — если батарейки сели — нужно их заменить, а если они в порядке — то можно и использовать. Эту конструкцию можно записать в одну строку.
// // proSwift.ru // // Swift 3 batterylow ? replaceBattery() : plugAndPlay()
Эти два выражения абсолютно равнозначны.
Оператор ??
// // proSwift.ru // // Swift 3 let result = optional ?? defaultValue
Оператор ?? применяется к опциональному значению optional, и если оно извлекается то в result вернется извлеченное значение. А если значение не извлекается, т.е. оно равно nil, то вернется значение defaultValue. Это сокращение следующей конструкции
// // proSwift.ru // // Swift 3 if optional != nil { return optional! } else { return defaultValue } // Или в сокращенном варианте optional != nil ? optional! : defaultValue
Добавить комментарий