我对Golang还是很陌生,我正在尝试了解有关内存管理的更多信息。
[使用nil
和空struct{}
数组进行一些测试,我注意到空struct{}
的数组不会分配任何内存,而nil
的数组会分配任何内存。这对我来说没有多大意义,我实际上期望的是相同的行为(即,两者均不分配任何东西)。无论如何,我找不到关于此特定案例的任何解释。
有人可以解释一下为什么会这样吗?
这是因为空结构不包含任何值。
这对数组或切片不是很有用。但这对于地图很有用。没有价值的地图就像一个集合。您可以插入密钥并测试它们是否存在。缺少价值会节省您发现的空间。