「コードの中で出てくる、” … ”って一体何なんだろう?」
本記事ではそんな疑問にお答えします。
Flutter / Dart で頻出する、 スプレッド演算子 ” … “について解説します。
サンプルコードを紹介の上、どのような用途で使うのか詳細に解説します。
ぜひ読んでみてください!
スプレッド演算子 ”…”とは?
コードリーディング中、以下のようなコードを見たことはありませんか?
final list1 = [1, 2, 3];
final list2 = [4, ...list1, 5];
2行目で使われている”…”をスプレッド演算子と呼びます。
スプレッド演算子は、List
のような複数の値を保持するコレクションに、
複数の値を一気に挿入するのに用います。
上の例だと、list2
の4
と5
の間にlist1
の[1, 2, 3]
が挿入されるので、
print(list2); // [4, 1, 2, 3, 5]
となります。
以上がスプレッド演算子”…”の概要となります。
null-aware スプレッド演算子 ” …? ”
”…?”という演算子が存在します。
”…?”はnull-aware スプレッド演算子と呼びます。
”…?”を用いると、この演算子の右側がnullの場合に例外が発生しなくなります。
final list1 = null;
// final list2 = [4, ...list1, 5]; //Exception発生
final list3 = [4, ...?list1, 5];
print(list3); // [4, 5]
以上がnull-aware スプレッド演算子の解説となります。
使用例
使用例を紹介します。
例えばあるList
のデータを読み込み済みで、
新たにList
でデータを取得してきて、まとめたい、という事象を考えます。
このコードは以下のように書くことができます。
newData = fetchData();
data = [...data, ...?newData];
このコードで既存のデータのList
の後ろにnewData
が追加されます。
このように、スプレッド演算子は複数のデータを一気に追加するのに有効です。
まとめ
Flutter / Dart で頻出する、 スプレッド演算子 ” … “について解説します。
サンプルコードを紹介の上、どのような用途で使うのか詳細に解説しました。
いかがだったでしょうか?
以前紹介したカスケード演算子と同様に、
自分で使わないにしろ、人の書いたコードや内部コードで出てき得る演算子となっています。
ぜひ、「これってなんだっけ?」となった時には本記事の内容を参照してみてください。
本記事があなたのアプリ開発の一助となれば幸いです。
参考
編集後記(2022/12/23)
・・・
週刊Flutter大学では、Flutterに関する技術記事、Flutter大学についての紹介記事を投稿していきます。
記事の更新情報はFlutter大学Twitterにて告知します。
ぜひぜひフォローをお願いいたします。