Go'da bir dilimin bir kopyasını yapmam ve belgeleri okumam gerekiyor, orada bir kopyalama işlevi var.
Yerleşik kopyalama işlevi, bir kaynak dilimdeki öğeleri bir hedef dilime kopyalar. (Özel bir durum olarak, bir dizeden baytları bir bayt dilimine kopyalayacaktır.) Kaynak ve hedef çakışabilir. Copy, kopyalanan öğelerin sayısını döndürür; bu, minimum len (src) ve len (dst) olacaktır.
Ama yaptığımda:
arr := []int{1, 2, 3}
tmp := []int{}
copy(tmp, arr)
fmt.Println(tmp)
fmt.Println(arr)
Benim tmp
o (Ben bile kullanım çalışmadan önce olduğu gibi boş arr, tmp
):
[]
[1 2 3]
Oyun bahçesinde kontrol edebilirsiniz . Öyleyse neden bir dilimi kopyalayamıyorum?
dst
en azından sen (tam kopyası için kopyalamak istediğiniz birçok unsurları büyüklüğünde olmalıdır src
anlama len(dst) >= len(src)
).
b := append([]int{}, a...)