Есть ли идиома в Kotlin для установки переменной в null, если она еще не равна нулю? Что-то более семантически приятны, чем:Kotlin Set to Null If Not Null
var test: String? = null
if(test != null) test = null
Есть ли идиома в Kotlin для установки переменной в null, если она еще не равна нулю? Что-то более семантически приятны, чем:Kotlin Set to Null If Not Null
var test: String? = null
if(test != null) test = null
Вы можете использовать execute if not null idiom:
test?.let { test = null }
Просто присвоить нуль для локальной переменной:
test = null
В случае, если это не нуль - присвоить нуль к этой переменной. В случае, если переменная имеет значение null, вы просто присваиваете ей нуль, поэтому ничего не изменилось.
я придумал с этими расширениями, что делает это проще:
inline fun <T, R> T.letThenNull(block: (T) -> R): T? { block(this); return null }
val test: Any? = null
...
test = test?.letThenNull { /* do something with test */ }
1) Я предлагаю добавить это в качестве комментария к вопросу, а не в качестве ответа, поскольку это не на самом деле ответить на этом вопрос. 2) Если это нуль - что-то происходит: назначение. Для простых свойств, устанавливающих его в «null», не проблема, а для свойств со свойством backing и т. Д. Я могу понять, почему можно было бы только установить его на «null», если он еще не «null». – mfulton26
Но у нас есть конкретная конкретная переменная, а не свойство. – IRus
Правда. Возможно, вы могли бы пояснить, что если это «null», назначение выполняется, но оно просто устанавливает переменную в одно и то же значение: «null». – mfulton26