概要
DartでListに要素を追加する際に、addやinsertのメソッドが紹介されることが多いですが、
元のListに変更を加えず非破壊的に追加する方法は、どういう書き方があるかなと思い少し調べてみました。
前提
- 今回、使用したDartのバージョンは2.18.6です。
対応案
ChatGPTで調べたところ、以下の通り3つの案が挙げられました。
個人的にはJavaScriptと同様の書き方で、スプレッド演算子を使う方法が良いかなと感じました。ちなみにスプレッド演算子はDart2.3の新機能2つの概要の記事で紹介されているように、バージョン2.3で追加された機能になります。
実装サンプル
ChatGPTで紹介されたソースと同様ですが、スプレッド演算子を使う方法の実装サンプルです。
var list1 = [1, 2, 3];
var list2 = [...list1, 4];
print(list1); // [1, 2, 3]
print(list2); // [1, 2, 3, 4]