我正在使用这个构造来模拟一个集合
type MyType uint8
map[MyType]interface{}
然后我添加我所有的键并将它们映射到 nil
。
我知道也可以使用
map[MyType]struct{}
使用空结构与 interface{}
相比的任何好处。
最佳答案
内存使用情况。例如,类型 struct{}
、interface{}
和 bool
、
package main
import (
"fmt"
"unsafe"
)
func main() {
var s struct{}
fmt.Println(unsafe.Sizeof(s))
var i interface{}
fmt.Println(unsafe.Sizeof(i))
var b bool
fmt.Println(unsafe.Sizeof(b))
}
输出(32 位架构的字节数):
0
8
1
输出(64 位架构的字节数):
0
16
1
引用资料:
关于go - 使用空接口(interface)或空结构作为映射的值有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22770114/