Денис Загаевский, значение может измениться, только если эту переменную изменяют в нескольких потоках.
Проверить на null и присвоить значение, если оно null - это в любом случае не атомарная операция.
Так что нужно обмазывать блокировками.
Денис Загаевский, автор про конструкцию when ничего не упоминал. Только if let apply. Да и не давал конкретики, про то что именно "тернарный" оператор нужен.