Асоціативні масиви

D має вбудованi асоціативні масиви, також відомi як HashMap-и. Асоціативний масив з ключем типу string і типом значення int оголошується наступним чином:

int[string] arr;

За допомогою ключа можна як отримати значення, так i встановити його:

arr["key1"] = 10;

Щоб перевірити, чи розташований ключ в асоціативному масиві, може бути використан вираз in:

if ("key1" in arr)
    writeln("Yes");

Вираз in повертає вказівник на значення, якщо його можна знайти, або null в іншому випадку. Таким чином, перевірка на існування і запис можуть бути легко об'єднані:

if (auto val = "key1" in arr)
    *val = 20;

Доступ до ключу, який не існує дає помилку RangeError, яка негайно припиняє виконання програми. Для безпечного доступу зі значенням за замовчуванням може бути використано вираз get(key, ЗначенняЗаЗамовчуванням).

Асоциативнi масиви, як i звичайнi, мають властивість .length, а також властивicть .remove(val), що видаляє запис по ключу. В якості вправи читачу залишається дослідження спеціальних діапазонів .byKey і .byValue.

Бiльше інформації

rdmd playground.d