Dartとメソッドチェーンとは

Flutter/Dart

この記事では、Dartとメソッドチェーン(メソッドをドットで繋いだもの)について書いています。

メソッドチェーンとは

メソッドどうしを.(ドット)で繋げたものあるいは数珠繋ぎなものをメソッドチェーンといいます。意味は、「前の処理で返ってきたデータを、そのまま次の処理の材料として渡す」です。

メソッドチェーンのメリット

新しい変数を作る必要がなくなり、コードが直感的に読みやすくなります。

例は以下のとおりです。

void main(){
String input = "  hello  ";

// trim()で空白を消し、そのままtoUpperCase()で大文字にする
String result = input.trim().toUpperCase();

print(result); // 出力: HELLO
}

やろうとしていることは、ユーザーが入力した hello という文字列に対して

  • 空白を消す
  • 小文字を大文字にする

の2点を変数に入れ替えることなく行なっています。

void main() {
  List<int> numbers = [1, 2, 3, 4];

  List<int> result = numbers
      .where((n) => n.isEven) // 偶数だけを絞り込む (2, 4)
      .map((n) => n * 2) // それぞれを2倍にする (4, 8)
      .toList(); // リストに戻す

  print(result); // 出力: [4, 8]
}

メソッドチェーン無しで書く

同じ出力になりますが、変数が増え2行になった分だけ読みづらくなると思います。

void main(){
String input = "  hello  ";

String trimmed = input.trim();       // 一度変数に入れる
String result = trimmed.toUpperCase(); // もう一度処理して変数に入れる

print(result); // 出力: HELLO
}

タイトルとURLをコピーしました