Go 到 std::set
的等价物是什么?请注意,只有唯一性很重要,我不关心顺序。
我考虑过使用虚拟类型,例如 map[string]bool
(其中 bool
是虚拟类型),但是我经常发现在 Go 中我需要提供一种不需要的类型,例如用作信号量的 channel ,以及这种情况。我是否遗漏了一些 Go 惯用的东西?
最佳答案
在像 Perl 这样没有集合的语言中,使用带有虚拟值的映射作为集合是常见的做法。我认为在 Go 中获取集合是一种可以接受的方式,除非你想自己实现它或者使用一些第三方实现。当然,您的数据类型必须是允许作为映射中的键的数据类型,即不能是结构、数组或 slice 。
关于containers - 相当于 std::set?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4290171/