更复杂的零值
在切片中,零值是空切片。
var myIntSlice []int // [] - an empty slice
使用 make 创建一个填充了值的切片,切片中创建的任何值都将设置为切片类型的零值。例如:
myIntSlice := make([]int, 5) // [0, 0, 0, 0, 0] - a slice with 5 zeroes
fmt.Println(myIntSlice[3])
// Prints 0
在这个例子中,myIntSlice 是一个 int 切片,包含 5 个元素,它们都是 0,因为这是 int 类型的零值。
你还可以使用 new 创建切片,这将创建指向切片的指针。
myIntSlice := new([]int) // &[] - a pointer to an empty slice
*myIntSlice = make([]int, 5) // [0, 0, 0, 0, 0] - a slice with 5 zeroes
fmt.Println((*myIntSlice)[3])
// Prints 0
注意: 切片指针不支持索引,因此你无法使用 myIntSlice[3] 访问这些值,而是需要像 (*myIntSlice)[3] 那样进行操作。