Dにはハッシュマップとしても知られる連想配列が組み込みで存在します。
キーの型がstring
で値の方がint
である連想配列は下記のように宣言されます:
int[string] arr;
値はそのキーによってアクセスでき、したがって設定できます:
arr["key1"] = 10;
キーが連想配列内にあるかどうかをテストするのに、in
式が使えます:
if ("key1" in arr)
writeln("Yes");
in
式は値が見つかった時はそのポインタを、そうでなければnull
ポインタを返します。
したがって存在チェックと書き込みは便利に組み合わせることができます:
if (auto val = "key1" in arr)
*val = 20;
存在しないキーへのアクセスは即座にアプリケーションを停止させる
RangeError
を発生させます。デフォルト値による安全なアクセスには、
get(key, defaultValue)
が使えます。
連想配列は配列のような.length
プロパティを持ち、キーによって項目を
削除する.remove(val)
メンバを持ちます。
特殊な.byKey
と.byValue
レンジを探索することは読者への練習問題とします。