Как система типов Kotlin обеспечивает null-безопасность, и какие ключевые операторы и механизмы используются для работы с nullable типами? — ДейлиПреп