Golang内存管理:零vs空结构{}

问题描述 投票:1回答:1

我对Golang还是很陌生,我正在尝试了解有关内存管理的更多信息。

[使用nil和空struct{}数组进行一些测试,我注意到空struct{}的数组不会分配任何内存,而nil的数组会分配任何内存。这对我来说没有多大意义,我实际上期望的是相同的行为(即,两者均不分配任何东西)。无论如何,我找不到关于此特定案例的任何解释。

有人可以解释一下为什么会这样吗?

Here is my test

go memory-management
1个回答
0
投票

这是因为空结构不包含任何值。

这对数组或切片不是很有用。但这对于地图很有用。没有价值的地图就像一个集合。您可以插入密钥并测试它们是否存在。缺少价值会节省您发现的空间。

© www.soinside.com 2019 - 2024. All rights reserved.