标签: go
或者更确切地说,似乎我可以做这三件事中的任何一件事。它们之间有什么区别吗?哪个是最好的,为什么?
var foo []int
foo := []int{}
foo := make([]int, 0)
答案 0 :(得分:8)
1)是零片。
2)和3)是非零切片,长度为零,容量为零。
Playground example
没有选项可以分配内存。
Go代码中通常使用所有选项。
由于len,cap和append适用于零片段,1)通常可以与2)和3)互换使用。
len
cap
append