Dart リスト(配列)の全ての要素を同じ値で指定した数だけ生成する

Dart リスト(配列)の全ての要素を同じ値で指定した数だけ生成する

Dartで、リスト(配列)の全ての要素を同じ値で指定した数だけ生成するコードを記述してます。「filled」を使用します。「growable」を「true」に指定しない場合は固定長の配列が生成されます。

環境

  • OS windows11 home
  • Dart 2.18.4

全ての要素を同じ値で指定

全ての要素を同じ値で指定するには「 filled 」を使用します。

リスト.filled(生成する数,値,[growable: true or false] )

※growableはデフォルトはfalseで、固定長の配列が生成されます。trueにすると可変な配列になります。

実際に、使用して生成してみます。

void main() {
  var list = List<int>.filled(3, 7);

  print(list); // [7, 7, 7]
}

実行結果を見ると、7が3つ生成されていることが確認できます。

「growable」はデフォルトは「false」になっており、固定長のリストが生成され値を追加するとエラーとなります。

void main() {
  var list = List<int>.filled(3, 7);

  print(list); // [7, 7, 7]

  list.add(7);

  print(list);
}

Unhandled exception:
Unsupported operation: Cannot add to a fixed-length list
#0      FixedLengthListMixin.add (dart:_internal/list.dart:21:5)
#1      main (file:///c:/sample/main.dart:6:8)
#2      _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:297:19)
#3      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)

編集は可能です。

void main() {
  var list = List.filled(3, 7);

  print(list); // [7, 7, 7]

  list[0] = 8;

  print(list); // [8, 7, 7]
}

また、「true」を指定すると値の追加は可能です。

void main() {
  var list = List<int>.filled(3, 7, growable: true);

  print(list); // [7, 7, 7]

  list.add(7);

  print(list); // [7, 7, 7, 7]
}