【 Dart 】スプレッド演算子 ” … ” とは?【 Flutter 】

「コードの中で出てくる、” … ”って一体何なんだろう?」

本記事ではそんな疑問にお答えします。

Flutter / Dart で頻出する、 スプレッド演算子 ” … “について解説します。

サンプルコードを紹介の上、どのような用途で使うのか詳細に解説します。

ぜひ読んでみてください!

スプレッド演算子 ”…”とは?

コードリーディング中、以下のようなコードを見たことはありませんか?

  final list1 = [1, 2, 3];
  final list2 = [4, ...list1, 5];

2行目で使われている”…”をスプレッド演算子と呼びます。

スプレッド演算子は、Listのような複数の値を保持するコレクションに、
複数の値を一気に挿入するのに用います。

上の例だと、list245の間に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 で頻出する、 スプレッド演算子 ” … “について解説します。

サンプルコードを紹介の上、どのような用途で使うのか詳細に解説しました。

いかがだったでしょうか?

以前紹介したカスケード演算子と同様に、
自分で使わないにしろ、人の書いたコードや内部コードで出てき得る演算子となっています。

ぜひ、「これってなんだっけ?」となった時には本記事の内容を参照してみてください。

本記事があなたのアプリ開発の一助となれば幸いです。

Flutterを一緒に学んでみませんか?
Flutter エンジニアに特化した学習コミュニティ、Flutter大学への入会は、
以下の画像リンクから。



参考

A tour of the Dart language
A tour of all the major Dart language features.

編集後記(2022/12/23)

・・・

週刊Flutter大学では、Flutterに関する技術記事、Flutter大学についての紹介記事を投稿していきます。
記事の更新情報はFlutter大学Twitterにて告知します。
ぜひぜひフォローをお願いいたします。

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