我应该如何在Go中定义一个空切片?

And*_*w C 12 go

或者更准确地说,似乎我可以做这三件事中的任何一件事.它们之间有什么区别吗?哪个最好,为什么?

  1. var foo []int
  2. foo := []int{}
  3. foo := make([]int, 0)

Cer*_*món 8

1)是零片.

2)和3)是长度为零且容量为零的非零切片.

游乐场的例子

没有选项分配内存.

所有选项都在Go代码中常用.

因为len,capappend与零片的工作,1)通常可以互换使用2)和3).