Ответ
Оператор ?. (safe call) возвращает null, если объект, к которому обращаются, равен null. В противном случае выполняется обычный доступ к свойству/методу.
Пример:
val str: String? = null
val length = str?.length // вернет null
Особенности:
- Позволяет избежать NPE
- Можно использовать в цепочке вызовов:
user?.address?.street - Часто комбинируется с оператором Элвиса
?:для задания значения по умолчанию
Эквивалент Java кода:
str != null ? str.length() : null