一尘不染

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

go

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

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

阅读 310

收藏
2020-07-02

共1个答案

一尘不染

1)是零切片。

2)和3)是长度为零,容量为零的非零切片。

操场上的例子

没有一个选项分配内存。

所有这些选项通常在Go代码中使用。

因为lencapappend与零切片,1)的工作通常可以互换2)和3)中使用。

2020-07-02