Dartで変更不可能なMapを作る方法とは?使い方を解説

2024年6月28日金曜日

Flutter

t f B! P L

はじめに:Map<K, V>.unmodifiableとは

Dart(Flutter)において、マップ(連想配列)はキーと値のペアでデータを管理するデータ構造です。Map<K, V>.unmodifiableは、読み取り専用のマップを作成するコンストラクタであり、一度作成された後はその内容を変更することができません。この機能はdart:coreライブラリに含まれており、プログラム内でデータの一貫性と安全性を保つために利用されます。

Map<K, V>.unmodifiableの使用方法

基本的な生成方法

Map<K, V>.unmodifiableを使用して、既存のマップから変更不可能な新しいマップを作成する方法を見てみましょう。以下にその基本的な使用法を示します:

void main() {
  Map<String, int> originalMap = {'apple': 3, 'banana': 5, 'cherry': 7};
  Map<String, int> unmodifiableMap = Map.unmodifiable(originalMap);

  print(unmodifiableMap);  // 出力: {apple: 3, banana: 5, cherry: 7}
  // unmodifiableMap['apple'] = 10;  // これはエラーを引き起こす
}

このコード例では、originalMapから読み取り専用のunmodifiableMapを生成しています。このunmodifiableMapに対して要素を追加したり変更したりする操作を試みると、プログラムは実行時にエラーを発生させます。

Map<K, V>.unmodifiableを活用する場面

Map<K, V>.unmodifiableは、アプリケーション内でデータの不変性が重要な場面で利用されます。たとえば、設定情報やアプリケーション全体で共有される静的データを管理する際に、これらのデータがプログラムの実行中に変更されないようにすることが望ましいです。これにより、データの誤用や意図しない変更から保護し、アプリケーションの信頼性を向上させることができます。

まとめ

以下の2点だけ押さえておきましょう。
Map<K, V>.unmodifiableは変更不可能(読み取り専用)のMapを作る関数である。
unmodifiableなMapに変更を加えようとするとエラーになる。

スポンサーリンク
スポンサーリンク

このブログを検索

Profile

自分の写真
Webアプリエンジニア。 日々新しい技術を追い求めてブログでアウトプットしています。
プロフィール画像は、猫村ゆゆこ様に書いてもらいました。

仕事募集もしていたり、していなかったり。

QooQ