在Go語言中,可以使用append()
函數來實現對slice的擴容。
append()
函數的語法如下:
append(s []T, x ...T) []T
其中,s
表示待擴容的slice,x
表示要追加的元素。
append()
函數會將要追加的元素添加到原有的slice中,如果原有的slice容量不夠,就會自動進行擴容。擴容時,會創建一個新的底層數組,并將原有的元素復制到新的數組中,然后再追加新的元素。
需要注意的是,append()
函數返回的是一個新的slice,因此在使用append()
函數擴容時,需要將返回值重新賦給原有的slice變量。
下面是一個示例代碼:
package main
import "fmt"
func main() {
s := []int{1, 2, 3}
fmt.Printf("原始slice:%v,容量:%d\n", s, cap(s))
s = append(s, 4, 5, 6)
fmt.Printf("擴容后的slice:%v,容量:%d\n", s, cap(s))
}
輸出結果:
原始slice:[1 2 3],容量:3
擴容后的slice:[1 2 3 4 5 6],容量:6
可以看到,原始的slice容量為3,通過append()
函數追加了3個元素后,slice自動擴容到了6。