Go 有迭代器数据类型吗?
如何编写可以执行类似于 C++ 中的地图迭代器之类的操作的 Go 代码?
typedef std::map<std::string, MyStruct> MyMap;
MyMap::iterator it = myMap.find("key");
if(it!=myMap.end()) {
it->v1 = something;
it->v2 = something;
}
How do I write Go code that can do something like a map iterator in C++?
typedef std::map<std::string, MyStruct> MyMap;
MyMap::iterator it = myMap.find("key");
if(it!=myMap.end()) {
it->v1 = something;
it->v2 = something;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 Go 中,使用 range 子句迭代映射非常容易。
可以打印
请注意,您以未定义的顺序对映射进行迭代,因为它是由哈希表而不是树支持的。
go 语言规范描述了 range 子句返回的内容,您可以看到 effective go 页面获取更多示例。
In go, it is pretty easy to iterate over a map using the range clause.
Could print
Note that you iterate in an undefined order over a map, as it is backed by a hash table rather than a tree.
The go language spec describes what the range clause returns, and you can see the effective go page for some more examples.
如果您只是想在地图中查找键,请使用以下命令:
If you're just trying to find a key in a map, then use the following: