更復雜的零值
在切片中,零值是空切片。
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]
那樣進行操作。