小编Vin*_*iel的帖子

为什么空切片有 24 个字节?

我想了解使用make([]int, 0). 我做这个代码进行测试:

emptySlice := make([]int, 0)
fmt.Println(len(emptySlice))
fmt.Println(cap(emptySlice))
fmt.Println(unsafe.Sizeof(emptySlice))
Run Code Online (Sandbox Code Playgroud)

size和容量返回很明显,都是0,但是slice的大小是24字节,为什么呢?

24 个字节应该是 3 个int64吧?一个包含 24 个字节的切片的内部数组应该类似于:[3]int{},那么为什么一个空切片有 24 个字节呢?

size optimization sizeof go slice

2
推荐指数
2
解决办法
151
查看次数

标签 统计

go ×1

optimization ×1

size ×1

sizeof ×1

slice ×1