Arrays Associativos

O D tem arrays associativos incorporados, também conhecidos como mapas de hash. Um array associativo com um tipo de chave string e um tipo de valor de int é declarado da seguinte forma:

int[string] arr;

O valor pode ser acessado por sua chave e, assim, ser definido:

arr["key1"] = 10;

Para testar se uma chave está localizada no array associativo, a expressão expressão in pode ser usada:

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

A expressão in retorna um ponteiro para o valor se ele puder ser encontrado ou um ponteiro null caso contrário. Assim, a verificação de existência e gravações podem ser convenientemente combinadas:

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

O acesso a uma chave que não existe gera um RangeError que interrompe imediatamente o aplicativo. Para acesso seguro com um valor padrão, get(key, defaultValue) pode ser usado.

Os AAs têm a propriedade .length como os arrays e fornecem um membro .remove(key) para remover entradas por sua chave. Deixamos como exercício para o leitor explorar os intervalos especiais .byKey e .byValue.

Maiores detalhes

rdmd playground.d