kotlin,可以调用 null.also{}
kotlin, is it ok to call null.also{}
有这样的代码:
result.also{......}
但是 result
可能为空并且编译器不会报错,它与
相同
null.also{...}
可以在 null
上给 also{}
打电话吗?
是的。正如函数定义告诉您的那样...
inline fun <T> T.also(block: (T) -> Unit): T (source)
...T
没有定义任何上限,因此可以与任何 nullable 和 non-nullable[=26] 一起使用=], 类型(<T>
与 <T: Any?>
相同)。
如果您担心 NullPointerExceptions,则大可不必。 also
函数简单地调用 block
及其接收者,在您的例子中是 null
,然后再次返回接收者。例如,以下是合法的:
//returns null and _also_ prints "null"
return null.also { println(it) }
有这样的代码:
result.also{......}
但是 result
可能为空并且编译器不会报错,它与
null.also{...}
可以在 null
上给 also{}
打电话吗?
是的。正如函数定义告诉您的那样...
inline fun <T> T.also(block: (T) -> Unit): T (source)
...T
没有定义任何上限,因此可以与任何 nullable 和 non-nullable[=26] 一起使用=], 类型(<T>
与 <T: Any?>
相同)。
如果您担心 NullPointerExceptions,则大可不必。 also
函数简单地调用 block
及其接收者,在您的例子中是 null
,然后再次返回接收者。例如,以下是合法的:
//returns null and _also_ prints "null"
return null.also { println(it) }