D Language
Ассоциативные массивы
Поиск…
Стандартное использование
int[string] wordCount(string[] wordList) {
int[string] words;
foreach (word; wordList) {
words[word]++;
}
return words;
}
void main() {
int[string] count = wordCount(["hello", "world", "I", "say", "hello"]);
foreach (key; count.keys) {
writefln("%s: %s", key, count[key]);
}
// hello: 2
// world: 1
// I: 1
// say: 1
// note: the order in the foreach is unspecified
}
литералы
int[string] aa0 = ["x": 5, "y": 6]; //int values, string keys
auto aa1 = ["x": 5.0, "y": 6.0]; // double values, string keys
string[int] aa2 = [10: "A", 11: "B"]; //string values, int keys
Добавить пары ключ-значение
int[string] aa = ["x": 5, "y": 6];
// The value can be set by its key:
aa["x"] = 7;
assert(aa["x"] == 7);
// if the key does not exist will be added
aa["z"] = 8;
assert(aa["z"] == 8);
Удалить пары ключ-значение
Предположим, что ассоциативный массив aa
:
int[string] aa = ["x": 5, "y": 6];
Элементы могут быть удалены с помощью .remove()
, если удаляются ключи и remove
возвращается true
:
assert(aa.remove("x"));
если данный ключ не существует, remove
ничего не делает и возвращает false
:
assert(!aa.remove("z"));
Проверьте, существует ли ключ
int[string] numbers = ["a" : 10, "b" : 20];
assert("a" in numbers);
assert("b" in numbers);
assert("c" in numbers);
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow