simple-web-system technology

Webに関する技術をシンプルに扱うブログ

DartのEnumのvalues関数で取得したListは破壊的変更できない

DartEnumの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]になる

今日はまった