我有时会看到诸如somevariable.value?.add()
之类的语句,问号有什么作用?
(对不起,在发布时,我还不知道这是Kotlin,我以为是Java)
答案 0 :(得分:2)
Kotlin将null
视为空指针异常的来源。
在您的代码段中,somevariable.value
是“可空类型”,例如MutableList?
或Axolotl?
。 MutableList
不能是null
,但是MutableList?
可能是null
。
通常,要在对象上调用函数,请使用.
。
一个用于在变量,参数或属性上调用函数的选项
可为null的类型是使用?.
。然后,将发生以下两种情况之一:
null
,则会忽略您的函数调用,而null
是
结果null
,则按正常方式进行函数调用所以,就您而言:
如果somevariable.value
是null
,则跳过add()
通话
如果somevariable.value
不是null
,则无论add()
是什么,都将进行somevariable.value
调用