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 给切片做扩充时,切片的地址可能发生变化。但,数据都被重新保存了,不影响使用。