更復雜的零值

在切片中,零值是空切片。

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] 那樣進行操作。