【Flutter/Dart】「?.」「??」「!」記法/使い方/基礎から実践

最終更新日

この記事では、Dartの記法について調べまとめました。使い方やサンプルがあります。

はじめに

下記の記法は、nullの制御に対して使うものをまとめています。

?.

オブジェクトがnullかどうかを調べる時に使用します。

サンプル

void main() {
  String target = null;
  var length;
  if (target?.length == null){
    length = 0;
  } else {
    length = target.length;
  }
  print(length);
  
  String target_2 = 'hello';
  var length_2;
  if (target_2 == null){
    length_2 = 0;
  } else {
    length_2 = target_2.length;
  }
  print(length_2);
}

??

こちらは参考演算子です。if文と同じ効果を持ちます。

サンプル

void main() {
  String target = null;
  var length = target?.length ?? 0;
  print(length);
  // 0
  
  String target_2 = 'hello';
  var length_2 = target_2?.length ?? 0;
  print(length_2);
  // 5
}

!

変数.オブジェクトにnullを許容します。

main() {
  String? val;
  
  try {
    if (val!.length > 0) {
      print("0以上です");
    } else {
      print("0です");
    }
  } catch (e) {
    print('Errorが発生:$e\n');
    // Errorが発生:NoSuchMethodError: method not found: 'toString' on null
  }
}

参考