この記事では、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
}
