list := make([]Item, 0)
和 var list []Item
都是用于创建一个切片(slice)的语法,但它们在 Go 中有一些区别。
list := make([]Item, 0)
:
make
函数来创建切片的方式,其中 Item
是切片的元素类型。make
函数会为切片分配底层数组的内存,并返回一个指向该切片的引用。list
是一个空切片,长度为0,容量可以省略(默认为0)。var list []Item
:
var
声明来创建零值切片的方式。list
是一个 nil 切片,它没有底层数组。make
函数为它分配底层数组。示例:
package main
import "fmt"
type Item int
func main() {
// 使用 make 创建一个空切片
list1 := make([]Item, 0)
fmt.Println("list1:", list1) // 输出: list1: []
// 使用 var 声明一个 nil 切片
var list2 []Item
if list2 == nil {
fmt.Println("list2 is nil")
} else {
fmt.Println("list2:", list2) // 输出: list2 is nil
}
}
总之,两种方式都可以用于创建切片,但 make
方式更常见,因为它创建了一个可用于添加元素的切片,而 var
声明创建的是 nil 切片,需要使用 make
初始化后才能使用。