Dart SetにSetを追加する

Dart SetにSetを追加する

Dartで、SetにSetを追加するコードを記述してます。「addAll」を使用して追加します。重複した値は追加されません。また、定数に使用するとエラーとなります。

環境

  • OS windows11 home
  • Dart 2.18.4

SetにSetを追加

SetにSetを追加するには、「addAll」を使用します。

セット.addAll(セット)

実際に、使用して追加してみます。

void main() {
  var set1 = {'aaa', 'bbb'};
  var set2 = {'ccc', 'ddd'};

  set1.addAll(set2);

  print(set1); // {aaa, bbb, ccc, ddd}
}

実行結果を見ると、追加されていることが確認できます。

重複した値は追加されません。

void main() {
  var set1 = {'aaa', 'bbb'};
  var set2 = {'bbb', 'ccc'};

  set1.addAll(set2);

  print(set1); // {aaa, bbb, ccc}
}

定数

「const」で宣言したリストに使用するとエラー「Unsupported operation: Cannot modify an unmodifiable list」が発生します。

void main() {
  const set1 = {'aaa', 'bbb'};
  var set2 = {'bbb', 'ccc'};

  set1.addAll(set2);

  print(set1);
}
Unhandled exception:
Unsupported operation: Cannot change an unmodifiable set
#0      _UnmodifiableSetMixin._throwUnmodifiable (dart:collection/set.dart:345:5)
#1      _UnmodifiableSetMixin.addAll (dart:collection/set.dart:355:40)
#2      main (file:///c:/sample/main.dart:5:8)
#3      _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:297:19)
#4      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)

「final」の場合は、メモリ領域は変更できるためエラーにはなりません。

void main() {
  final set1 = {'aaa', 'bbb'};
  var set2 = {'bbb', 'ccc'};

  set1.addAll(set2);

  print(set1); // {aaa, bbb, ccc}
}

add

「set」の末尾に値を追加する場合は、「add」を使用します。

void main() {
  final set = {'aaa'};  

  set.add('bbb');

  print(set); // {aaa, bbb}
}