2016-09-20 3 views
2

Есть ли идиома в Kotlin для установки переменной в null, если она еще не равна нулю? Что-то более семантически приятны, чем:Kotlin Set to Null If Not Null

var test: String? = null 
if(test != null) test = null 

ответ

3

Просто присвоить нуль для локальной переменной:

test = null 

В случае, если это не нуль - присвоить нуль к этой переменной. В случае, если переменная имеет значение null, вы просто присваиваете ей нуль, поэтому ничего не изменилось.

+1

1) Я предлагаю добавить это в качестве комментария к вопросу, а не в качестве ответа, поскольку это не на самом деле ответить на этом вопрос. 2) Если это нуль - что-то происходит: назначение. Для простых свойств, устанавливающих его в «null», не проблема, а для свойств со свойством backing и т. Д. Я могу понять, почему можно было бы только установить его на «null», если он еще не «null». – mfulton26

+0

Но у нас есть конкретная конкретная переменная, а не свойство. – IRus

+0

Правда. Возможно, вы могли бы пояснить, что если это «null», назначение выполняется, но оно просто устанавливает переменную в одно и то же значение: «null». – mfulton26

0

я придумал с этими расширениями, что делает это проще:

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 */ } 
Смежные вопросы