Dart リスト(配列)の指定した位置に値を挿入する

Dartで、リスト(配列)の指定した位置に値を挿入するコードを記述してます。「insert」で位置を指定することで値を挿入することができます。「insertAll」の場合はリストを挿入することができます。また、「insert」は存在しない位置を指定するとエラーが発生します。
環境
- OS windows11 home
- Dart 2.18.1
指定した位置に値を挿入
範囲を指定して値を変更するには「 insert 」を使用します。
リスト.insert(位置,値)
※指定した位置に値が挿入されます
実際に使用して値を挿入してみます。
※「0」を指定すると先頭に値が追加されます。
void main() {
var list = ['aaa', 'bbb', 'ccc'];
list.insert( 1, 'AAA' );
print(list); // [aaa, AAA, bbb, ccc]
list.insert( 3, 'BBB' );
print(list); // [aaa, AAA, bbb, BBB, ccc]
}
実行結果を見ると、指定した位置の後ろに値が挿入されていることが確認できます。

指定した位置が存在しない場合はエラー「RangeError」が発生します。
void main() {
var list = ['aaa', 'bbb', 'ccc'];
list.insert( 4, 'AAA' );
print(list);
}
Unhandled exception:
RangeError: Invalid value: Not in inclusive range 0..3: 4
#0 List.insert (dart:core-patch/growable_array.dart:11:7)
#1 main (file:///c:/sample/main.dart:4:8)
#2 _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:297:19)
#3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)
挿入する値をリスト
挿入する値をリストにしたい場合は「insertAll」を使用します。
void main() {
var list = ['aaa', 'bbb', 'ccc'];
list.insertAll( 0, ['AAA', 'BBB'] );
print(list); // [AAA, BBB, aaa, bbb, ccc]
}
定数
「const」で宣言したリストに挿入しようとすると、エラー「Unsupported operation: Cannot modify an unmodifiable list」が発生します。
void main() {
const list = ['aaa', 'bbb', 'ccc'];
list.insert( 1, 'AAA' );
print(list);
}
Unhandled exception:
Unsupported operation: Cannot add to an unmodifiable list
#0 UnmodifiableListMixin.insert (dart:_internal/list.dart:119:5)
#1 main (file:///c:/sample/main.dart:4:8)
#2 _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:297:19)
#3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)
「final」の場合は、メモリ領域は変更できるようなのでエラーにはなりません。
void main() {
final list = ['aaa', 'bbb', 'ccc'];
list.insert( 1, 'AAA' );
print(list); // [aaa, AAA, bbb, ccc]
}
-
前の記事
sakuraエディタ 単語単位で選択するショートカットキー 2022.10.30
-
次の記事
javascript 国コードから国名を取得する 2022.10.30
コメントを書く