1. ホーム
  2. dart

[解決済み] Dartの「?」ダブルクエスチョンマークとは何ですか?

2022-05-01 07:09:53

質問

次のコード行には、2つのクエスチョンマークがあります。

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

意味は何ですか?

どのように解決するのですか?

その ?? 二重疑問符演算子は、quot;if null"を意味します。たとえば、次のような式があります。

String a = b ?? 'hello';

これはつまり a イコール b が、もし b が NULL の場合 a イコール 'hello' .

また、関連する演算子として ??= . 例えば

b ??= 'hello';

これは、もし b が null ならば、それを hello . そうでなければ、変更しないでください。

参考文献

用語解説

Dart 1.12リリースニュース と総称しています。 ヌル認識演算子 :

  • ?? -- if null 演算子
  • ??= -- ヌルを考慮した代入
  • x?.p -- null-aware アクセス
  • x?.m() -- nullを意識したメソッド呼び出し