はじめに
flutterのコードを読んでいるとよくstate = [...state, toDo]
とうふうに、謎の"..."が登場します。これはスプレッド演算子
というもので、活用できるととても便利な機能です。私自身、何度勉強しても忘れてしまうのでメモしようと思います。
スプレッド演算子とは
スプレッド演算子とはリストやマップなどの要素を展開して新しいリストやマップを作るための演算子です。
では、実際に例を交えながら見ていきましょう。
リストの要素の結合
List<int> list1 = [1, 2, 3];
List<int> list2 = [4, 5, 6];
List<int> combinedList = [...list1, ...list2];
print(combinedList);
// [1,2,3,4,5,6]
このコードでは、...演算子を使用してlist1とlist2を結合し、新しいcombinedListを作成しています
マップの結合
Map<String, dynamic> map1 = {'a': 1, 'b': 2};
Map<String, dynamic> map2 = {'c': 3, 'd': 4};
Map<String, dynamic> combinedMap = {...map1, ...map2};
print(combinedMap);
// {'a': 1, 'b': 2, 'c': 3, 'd': 4}
このコードでは、...演算子を使用してmap1とmap2を結合し、新しいcombinedMapを作成しています
リストやマップの更新
スプレッド演算子はリストやマップの更新にも適しています。
List<int> originalList = [1, 2, 3];
originalList = [0, ...originalList, 4, 5];
print(originalList); // [0, 1, 2, 3, 4, 5]
最後に
リストやマップの結合、更新がたった"..."だけでできてしまう。スプレッド演算子は非常にシンプルで強力な機能ですね。だからこそ活用できたらカッコいい。どんどん使っていきましょう。