Например, если у меня есть следующий класс данных:
data class Data(
val name: String = "",
val number: Long = 0
)
И функции, которые могут возвращать null
:
fun newName(): String? {}
fun newNumber(): Long? {}
Я знаю, что могу использовать следующее, чтобы использовать значение функций, если они не null
:
val newName = newName()
val newNumber = newNumber()
val data = Data(
if (newName != null) newName else "",
if (newNumber != null) newNumber else 0
)
Но есть ли способ просто использовать значение по умолчанию, указанное в конструкторе класса Data
, когда значения равны null
?
Я не мог найти ничего в документации, но я надеялся, что что-то вроде этого будет работать:
val data = Data(newName()?, newNumber()?)
Но это не компилируется.
if (newName != null) newName else ""
можно просто использоватьnewName ?: ""
. Это называется оператор Элвиса. - person Mibac   schedule 23.06.2017