Go內建函數copy:函數
func copy(dst, src []Type) intspa
用於將源slice的數據(第二個參數),複製到目標slice(第一個參數)。code
返回值爲拷貝了的數據個數,是len(dst)和len(src)中的最小值。blog
看代碼:索引
package main import ( "fmt" ) func main() { var a = []int{0, 1, 2, 3, 4, 5, 6, 7} var s = make([]int, 6) //源長度爲8,目標爲6,只會複製前6個 n1 := copy(s, a) fmt.Println("s - ", s) fmt.Println("n1 - ", n1) //源長爲7,目標爲6,複製索引1到6 n2 := copy(s, a[1:]) fmt.Println("s - ", s) fmt.Println("n2 - ", n2) //源長爲8-5=3,只會複製3個值,目標中的後三個值不會變 n3 := copy(s, a[5:]) fmt.Println("s - ", s) fmt.Println("n3 - ", n3) //將源中的索引5,6,7複製到目標中的索引3,4,5 n4 := copy(s[3:], a[5:]) fmt.Println("s - ", s) fmt.Println("n4 - ", n4) }
執行結果:class
s - [0 1 2 3 4 5]import
n1 - 6im
s - [1 2 3 4 5 6]數據
n2 - 6di
s - [5 6 7 4 5 6]
n3 - 3
s - [5 6 7 5 6 7]
n4 - 3