В языке 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)
для удаления записи по её ключу. В качестве упражнения читателю предлагается самостоятельно исследовать специальные диапазоны .byKeys
и .byValues
.