Общей особенностью на многих языках, Null Coalescing Operator, является двоичный оператор, часто используемый для сокращения выражений типа:
x = possiblyNullValue NCO valueIfNull
... где NCO
является заполнителем для оператора нулевой коалесценции языков.
Objective C Null Coalescing Operator ?:
, поэтому выражение будет:
x = possiblyNullValue ?: valueIfNull
Вышеприведенное выражение также эквивалентно использованию третичного оператора:
x = someTestForNotNull( possiblyNullValue ) ? possiblyNullValue : valueIfNull
Преимущества оператора Null Coalescing
- Более читаемый код (особенно с длинными именами описательных переменных)
- Уменьшенная возможность типографских ошибок (проверенный var вводится только один раз)
- Нет двойной оценки тестируемой переменной, где тестируемая переменная является получателем, поскольку ее доступ один раз (или необходимость кэшировать ее, чтобы умышленно избегать двойной оценки).