package main import ( "fmt" ) //1.append函數可以一次添加多個值 //2.append函數用於向切片追加 func main04() { slice := make([]int, 5, 8) slice = append(slice, 1, 2) slice = append(slice, 3) fmt.Println(slice) //[0 0 0 0 0 1 2 3] fmt.Printf("len=%d, cap=%d", len(slice), cap(slice)) }
append() 函數可以向 slice 尾部添加數據,可以自動為切片擴容。常常會返回新的 slice 對象。
append函數會智能的將底層數組的容量增長,一旦超過原底層數組容量,通常以2倍(1024以下)容量重新分配底層數組,並復制原來的數據。因此,使用append 給切片做擴充時,切片的地址可能發生變化。但,數據都被重新保存了,不影響使用。