Dart リスト(配列)で指定した値を削除する

Dartで、リスト(配列)で指定した値を削除するコードを記述してます。「remove」で値を指定すると指定した値を削除できます。また、「remove」は「const」を指定したリストに対して実行するとエラーが発生します。
環境
- OS windows11 home
- Dart 2.18.1
指定した値を削除
指定した値を削除するには「 remove 」を使用します。同じ値が複数ある場合は最初に見つかった値が削除されます。
リスト.remove(値)
※ 値が存在すれば「true」,存在しなければ「false」が返ります
実際に使用して値を指定して削除してみます。
void main() {
var list = ['aaa', 'bbb', 'ccc', 'ccc'];
print(list.remove('aaa')); // true
print(list); // [bbb, ccc, ccc]
print(list.remove('ccc')); // true
print(list); // [bbb, ccc]
print(list.remove('ddd')); // false
print(list); // [bbb, ccc]
}
実行結果を見ると、指定した値が削除されていることが確認できます。

定数
「const」で宣言したリストを削除しようとすると、エラー「Unsupported operation: Cannot remove from an unmodifiable list」が発生します。
void main() {
const list = ['aaa', 'bbb', 'ccc', 'ccc'];
print(list.remove('aaa'));
print(list);
}
Unhandled exception:
Unsupported operation: Cannot remove from an unmodifiable list
#0 UnmodifiableListMixin.remove (dart:_internal/list.dart:134:5)
#1 main (file:///c:/sample/main.dart:4:14)
#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', 'ccc'];
print(list.remove('aaa')); // true
print(list); // [bbb, ccc, ccc]
}
位置を指定して削除
ちなみに、位置を指定して削除する場合は「removeAt」を使用します。
void main() {
final list = ['aaa', 'bbb', 'ccc', 'ccc'];
print(list.removeAt(0)); // aaa
print(list); // [bbb, ccc, ccc]
}
-
前の記事
git 削除したブランチを戻す 2022.10.28
-
次の記事
draw.io 右のパネル(フォーマットパネル)の表示・非表示を切り替えるショートカットキー 2022.10.29
コメントを書く