D besitzt integrierte Assoziative Arrays (auch als Hashtabelle
oder Hashmap bekannt). Ein Assoziatives Array mit ein Schlüssel
des Typs string und einem Wert des Typs int wird folgendermaßen
erzeugt:
int[string] arr;
Der Wert kann über den Schlüssel erreicht und gesetzt werden:
arr["key1"] = 10;
Um zu testen, ob ein Schlüssel in dem Assoziativen Array enthalten
ist, kann der in-Ausdruck genutzt werden:
if ("key1" in arr)
writeln("Yes");
Der in-Ausdruck gibt einen Zeiger auf den Wert zurück, falls er
gefunden wurde, anderenfalls einen null-Zeiger. Also können
Existenz-Test und Schreiben komfortabel kombiniert werden:
if (auto val = "key1" in arr)
*val = 20;
Zugriff auf einen nicht existierenden Schlüssel führt zu einem
RangeError und dem sofortigen Abbruch der Anwendung. Für
sicheren Zugriff mit einen Standardwert (engl: default value)
gibt es get(key, defaultValue).
Assoziativery Arrays bieten neben der .length-Eigenschaft
herkömmlicher Arrays auch .remove(val), um Einträge über
ihren Schlüssel zu entfernen.
Dem Leser wird als Übung empfohlen, die speziellen .byKey-
und .byValue-Ranges zu erforschen.