Go 中存在集合吗? (就像在Python中一样)
python 中是否有类似 Set 的 Go 集合?
替代方案:
- 是否有一种简单的方法在 Go 中实现 Sets?
- 有什么方法可以消除切片中的重复项吗?
Is there any Go collection similar to 'Set's in python?
alternatives:
- Is there an easy way of implementing Sets in Go?
- Is there any method to eliminate duplicates in a slice?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以只使用
map[whatevertype]bool
并将值设置为true
。您可以将切片中的每个元素添加为映射键,然后使用range
仅获取唯一的元素。You could just have a
map[whatevertype]bool
and set the value totrue
. You could add every element in a slice as a map key, then use arange
to get only the unique ones back out.我认为
map[T]bool
是最好的选择,但另一个选择是map[T]struct{}
:它不太容易使用,但如果这对您来说是一个因素的话,它会占用更少的内存。
I think the
map[T]bool
is the best option, but another option ismap[T]struct{}
:it's not as easy to work with, but it takes up less memory if that is a factor for you.
目前 golang 中还没有固定的实现。您需要自己完成或获取第三方库。这里还有一篇不错的博客文章:
https ://www.openmymind.net/2011/7/15/Learning-Go-By-Benchmarking-Set-Implementation/
There is no set implementation in golang at this point. You'll need to do it yourself or get a third party lib. Also here is a nice blog post:
https://www.openmymind.net/2011/7/15/Learning-Go-By-Benchmarking-Set-Implementation/