Dart 中 ?. 运算符的作用是什么?

推荐答案

在 Dart 中,?. 运算符被称为“条件成员访问运算符”或“安全调用运算符”。它的作用是在访问对象的成员(如属性或方法)时,如果对象为 null,则不会抛出异常,而是直接返回 null

本题详细解读

1. 基本用法

?. 运算符通常用于避免在访问可能为 null 的对象的成员时抛出异常。例如:

在这个例子中,user 对象为 null,但使用 ?. 运算符访问 name 属性时,不会抛出异常,而是直接返回 null

2. 与普通成员访问的区别

如果不使用 ?. 运算符,而是直接使用 . 运算符访问 null 对象的成员,则会抛出 NoSuchMethodError 异常:

3. 链式调用

?. 运算符可以用于链式调用,确保在链中的任何一个对象为 null 时,整个表达式返回 null,而不会抛出异常:

在这个例子中,即使 usernamenull,也不会抛出异常,而是直接返回 null

4. 与 ?? 运算符的结合使用

?. 运算符经常与 ?? 运算符结合使用,以提供默认值:

在这个例子中,如果 usernamenull,则返回 'Unknown' 作为默认值。

5. 总结

?. 运算符是 Dart 中处理 null 安全性的重要工具,它允许你在访问可能为 null 的对象的成员时,避免抛出异常,并优雅地处理 null 情况。

纠错
反馈