gpt4 book ai didi

d - 迭代 D 中关联数组中的键/值对。

转载 作者:行者123 更新时间:2023-12-02 00:33:25 24 4
gpt4 key购买 nike

我不知道为什么我在网上找不到这个问题的答案。这似乎是一件很简单的事情。

关联数组有一个byValue 成员和一个byKey 成员用于遍历值和键。还有一个 byKeyValue 成员用于遍历键/值对。只是不清楚使用 foreach 迭代返回什么类型,编译器提示 auto 在这里不够好。

语言文档 ( https://dlang.org/spec/hash-map.html ) 称其为“不透明类型”。

知道如何让注释代码正常工作吗?谢谢!

int main(){
int[string] contained;

contained["foo"] = 4;
contained["bar"] = 5;
contained["gooey"] = 7;

writeln("*by values*");
foreach(int i ; contained.byValue){
writeln(i);
}

writeln("*by keys*");
foreach(string i ; contained.byKey){
writeln(i);
}

// writeln("*by key/values*");
//foreach(auto i ; contained.byKeyValue){
//writeln(i.key,i.value);
//}

return 0;
}

最佳答案

所以首先,你甚至不需要任何东西:

foreach(key, value; contained) {
// use right here
}

但是 .byKeyValue 的效率更高,所以使用它很酷...只是根本不指定类型(事实上,你很少需要使用 D 的 foreach,顺便说一句,它总是错误的在 foreach 语句中使用 auto - 这是一个常见的错误,因为它在许多其他地方使用...)

foreach(item; contained.byKeyValue()) {
writeln(item.key, " ", item.value);
}

此外,如果您总是希望 main 返回 0,您可以使用 void main - 语言会自动执行此操作。

关于d - 迭代 D 中关联数组中的键/值对。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50842944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com