Intereting Posts
Kotlin: java.lang.NoSuchMethodError в тестах Почему некоторые методы настройки Java автоматически становятся свойствами Kotlin, а некоторые нет? Порядок вычисления побитовых операторов в Котлине Как мне передать класс / класс класса Kotlin из String? как убрать DialogFragment из lambda, указанного в caller Kotlin В android kotlin, используя библиотеку степпера, передавая пользовательские значения переключателей по нескольким фрагментам, которые будут использоваться на сводной странице Kotlin: Может ли абстрактный суперкласс иметь абстрактный конструктор? Gradle не находит мои тесты с Kotlin и JUnit 5 Spring Data Elasticsearch с полем скриптов с данными класса данных Kotlin приводит к проблеме сериализации Джексона Поделитесь модулем Kotlin с проектом Android и Desktop Можете ли вы конкатенировать заявления во время выполнения в Котлине? Как хранить временную переменную при инициализации объекта Kotlin? Динамическое развертывание и запуск узлов в CORDA Что делает оператор стрелки («->») в Котлине? RxJava2 Может быть возвращено пустое Наблюдаемое, если ни один элемент

Как идиоматически преобразовать типы NULL в Котлин?

Я новичок в Kotlin, и я ищу советы, переписывающие следующий код более элегантным способом.

val ts: Long? = 1481710060773 val date: Date? if (ts != null) { date = Date(ts) } 

Я попытался let , но я думаю, что это не лучше оригинальной.

 val ts: Long? = 1481710060773 val date: Date? ts?.let { date = Date(ts) } 

Благодарю.

Solutions Collecting From Web of "Как идиоматически преобразовать типы NULL в Котлин?"

Вы можете использовать результат let call так:

 val date = ts?.let(::Date) 

Вы можете найти больше ссылок на функции с использованием :: синтаксиса в документации Kotlin

 val ts = 1481710060773L val date = Date(ts) 

Вам не нужно указывать ts как длинный длинный длинный тип Long? если вы назначаете ему постоянное значение. Тогда тип Long выводится на ts и больше не требуется нулевой проверки.