😺
DartのEnumのvalues関数で取得したListは破壊的変更できない
DartのEnumのvalues関数で取得したListはUnmodifiableListなので、remove等の破壊的変更が行えない。
toListで新しくListを作ると破壊的変更ができる。
以下のコード参照
enum ItemType {
item1,
item2,
item3,
}
final items = ItemType.values; /// -> [item1, item2, item3]が返ってくる
items.remove(ItemType.item1); /// "Unsupported operation: remove" というエラーメッセージが発生する
final newItems = items.toList();
newItems.remove(ItemType.item1); /// -> [item2, item3]になる
今日はまった
Discussion