【Flutter/Dart】カスケード記法|ダブルドット(..)とは?

今回はFlutterで度々登場するドット2つ(..)とは何かについて紹介します。

結論から言うと..を使うことで同じオブジェクトで複数の処理を連続した1つの処理として実行できます。..を使用した書き方を「カスケード記法」と呼びコードを短くできます。

\ 世界最大級のオンライン学習サービス /

目次

カスケード記法なしの場合(比較するコード)

class User {
  var name = '';
  int age = 0;
  void info() => print('$name:$age才');
}

main() {
  var user = User();
  user.name = 'Alex';
  user.age = 18;
  user.info();
}

//結果
//Alex:18才

カスケード記法をしない場合、上記コードのように何度もuser.を使用する必要があります。

カスケード記法の場合

class User {
  var name = '';
  int age = 0;
  void info() => print('$name:$age才');
}

main() {
  var user = User();
  user
    ..name = 'Alex'
    ..age = 18
    ..info();
}

//結果
//Alex:18才

カスケード記法では上記コードのように複数の処理を連続して1つの処理として実行できます。

カスケード記法では.をダブルドット..にし、セミコロン;は最後の処理にのみ使用します。

インスタンス化時にもカスケード記法できる

class User {
  var name = '';
  int age = 0;
  void info() => print('$name:$age才');
}

main() {
  var user = User()
    ..name = 'Alex'
    ..age = 18
    ..info();
}

//結果
//Alex:18才

インスタンス化時にもカスケード記法できます。

オブジェクトがnullの可能性がある場合|はてな+ダブルドット

querySelector('#confirm')
  ?..text = 'Confirm'
  ..classes.add('important')
  ..onClick.listen((e) => window.alert('Confirmed!'))
  ..scrollIntoView();

カスケード記法の対象となるオブジェクトがnullの可能性がある場合は?..を1つ目の処理で使用します。

オブジェクトがnullの場合は「?..」以下のカスケード表記で指定した処理は実行されません。

一緒に読みたい

参考

  • URLをコピーしました!
目次