根据https://play.golang.org/p/7RPExbwOEU,他们都打印相同的长度和容量。初始化切片的三种方法之间有区别吗?有首选方式吗?我发现自己同时使用频率相同的make([]int, 0)
和[]int{}
。
答案 0 :(得分:6)
初始化0长度切片。
make([]int, 0)
使用make
是初始化具有不同长度的特定容量的切片的唯一方法。这会分配一个长度为0的切片,但容量为1024.
make([]int, 0, 1024)
这是一个切片文字,它也初始化一个0长度切片。使用此或make([]int, 0)
完全是首选。
[]int{}
这会将指针初始化为切片,该切片会立即解除引用。切片本身尚未初始化,仍然为零,因此基本上什么都不做,相当于[]int(nil)
*new([]int)