有什么不同?是map[T]bool优化map[T]struct{}?Go中最好的做法是什么?
也许最好的理由map[T]struct{}是你不必回答"价值是什么意思"这个问题false?
来自"The Go Programming Language":
没有字段的struct类型称为空结构,写入
struct{}.它的大小为零,没有任何信息,但可能仍然有用.一些Go程序员使用它而不是bool作为表示集合的地图的值类型,以强调只有键是重要的,但节省空间是边缘的,语法更麻烦,所以我们通常避免它.
如果您使用bool"set"中的状态测试稍微好一些,因为您可以说:
if mySet["something"] {
/* .. */
}
Run Code Online (Sandbox Code Playgroud)