2016-09-20 117 views
2

在Kotlin中是否存在將變量設置爲null(如果它不爲空)的成語?一些語義上更賞心悅目比:Kotlin設置爲空如果不爲空

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

回答

3

只是null分配給本地變量:

test = null 

在情況下,如果不爲空 - 您指定空到這個變量。 如果變量爲空 - 你只是給它分配null,所以沒有任何改變。

+1

1)我建議增加此作爲的問題,而不是作爲一個答案,因爲這實際上並沒有回答這個問題的註釋。 2)如果它是空的 - 發生的事情:一個任務。對於簡單的屬性,將其設置爲'null'不是問題,而是對於具有後備屬性的屬性等。我可以明白爲什麼可能只想將其設置爲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 */ }