什么是 ??达特的双重问号?

问题描述 投票:16回答:1

以下代码行有两个问号:

final myStringList = prefs.getStringList('my_string_list_key') ?? [];

什么意思?

dart operators
1个回答
35
投票

??双问号运算符表示“如果为空”。例如,采用以下表达式。

String a = b ?? 'hello';

这意味着a等于b,但如果b为null,那么a等于'hello'

另一个相关的运营商是??=。例如:

b ??= 'hello';

这意味着如果b为null,则将其设置为hello。否则,请勿更改它。

参考

条款

Dart 1.12 release news将以下内容统称为null-aware运算符:

  • ?? - 如果为null运算符
  • ??= - 无效的分配
  • x?.p - 无效的访问权限
  • x?.m() - null-aware方法调用
© www.soinside.com 2019 - 2024. All rights reserved.