Kotlin 面试题
目录

Kotlin 中安全调用运算符 (?.) 的作用是什么?

· 约 2 分钟读完 · 第 20 / 200 章

推荐答案

在 Kotlin 中,安全调用运算符 (?.) 用于在对象可能为 null 的情况下安全地访问其属性或调用其方法。如果对象为 null,则表达式的结果为 null,而不会抛出 NullPointerException。

本题详细解读

安全调用运算符的作用

安全调用运算符 (?.) 的主要作用是避免在访问可能为 null 的对象的属性或方法时引发 NullPointerException。它允许你在不进行显式的 null 检查的情况下,安全地访问对象的成员。

语法示例

在这个例子中,如果 text 不为 null,则 length 将被赋值为 text.length 的值;如果 text 为 null,则 length 将被赋值为 null,而不会抛出异常。

与普通调用运算符的区别

  • 普通调用运算符 (.):如果对象为 null,调用其属性或方法会抛出 NullPointerException。
  • 安全调用运算符 (?.):如果对象为 null,表达式的结果为 null,不会抛出异常。

链式调用

安全调用运算符还可以用于链式调用,例如:

在这个例子中,如果 user 或 address 为 null,则 city 将被赋值为 null,而不会抛出异常。

与 Elvis 运算符的结合使用

安全调用运算符经常与 Elvis 运算符 (?:) 结合使用,以提供默认值:

在这个例子中,如果 text 为 null,则 length 将被赋值为 0。

总结

安全调用运算符 (?.) 是 Kotlin 中处理 null 值的一种简洁且安全的方式,能够有效避免 NullPointerException 的发生。