2020/3/20 Dart マップ(Maps)

一般的にマップ(map)はkeyとvalueを関連づけるオブジェクトです。keysとvaluesはあらゆる型のオブジェクトです。一つのmapの中の全てのkeyはユニークでなければなりませんが、valueは一つのmapの中に同じvalueがあっても構いません。Dartではマップ(map)に関してmapリテラルとMapクラスをサポートしています。


比較

Listは同じ値の要素があっても問題無い。

Setの各要素はユニークでなければならない。

Mapの各keyはユニークでなければならない。


sample1-1はシンプルなマップの例です。mapリテラルを用いてmapを生成しています。

sample1-1

var gifts = {
  // Key:    Value
  'first': 'partridge',
  'second': 'turtledoves',
  'fifth': 'golden rings'
};

var nobleGases = {
  2: 'helium',
  10: 'neon',
  18: 'argon',
};

mapクラスのコンストラクタを用いてsample1-1と同じmapを生成することもできます。(sample1-2)

sample1-2

var gifts = Map();
gifts['first'] = 'partridge';
gifts['second'] = 'turtledoves';
gifts['fifth'] = 'golden rings';

var nobleGases = Map();
nobleGases[2] = 'helium';
nobleGases[10] = 'neon';
nobleGases[18] = 'argon';

NOTE

Map();の代わりにnew Map();が頭に浮かんだ方もいると思います。Dart2ではnewキーワードは省略可能です。


JavaScriptと同じように、新しいkey-valueペアを既存のmapに追加することができます。

sample1-3

var gifts = {'first': 'partridge'};
gifts['fourth'] = 'calling birds'; //新しいkey-valueペアを追加

JavaScriptと同じ方法でmapから値(value)を取得できます。(sample1-4)

sample1-4

var gifts = {'first': 'partridge'};
assert(gifts['first'] == 'partridge');

そのmap内に存在しないkeyを用いて値を取得しようとした場合、nullが返ってきます。

sample1-5

var gifts = {'first': 'partridge'};
assert(gifts['fifth'] == null);

 

 

 

 

 

参考

https://dart.dev/guides/language/language-tour#maps

カテゴリーDart

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です