在 Dart 中,?? 是一个叫做 "null 合并运算符" 的运算符。它的作用是,当左侧的表达式为 null 时,返回右侧的表达式;如果左侧的表达式不为 null,则返回左侧的表达式。
示例:
void main() {
String? name;
String greeting = name ?? "Hello, Guest!";
print(greeting); // 输出: Hello, Guest!
name = "Alice";
greeting = name ?? "Hello, Guest!";
print(greeting); // 输出: Alice
}
在这个例子中,第一次调用时 name 为 null,所以返回了默认值 "Hello, Guest!"。第二次调用时 name 有值 "Alice",因此返回了 name 的值。
使用场景:
?? 常用于提供默认值,尤其是在处理可选类型或在可能为 null 的情况下,确保代码的健壮性。