Saya perlu membuat salinan irisan di Go dan membaca dokumen ada fungsi salin yang dapat saya gunakan.
Fungsi bawaan salinan menyalin elemen dari potongan sumber ke potongan tujuan. (Sebagai kasus khusus, ini juga akan menyalin byte dari string ke potongan byte.) Sumber dan tujuan mungkin tumpang tindih. Salin mengembalikan jumlah elemen yang disalin, yang merupakan minimum len (src) dan len (dst).
Tetapi ketika saya melakukannya:
arr := []int{1, 2, 3}
tmp := []int{}
copy(tmp, arr)
fmt.Println(tmp)
fmt.Println(arr)
Saya tmp
kosong seperti sebelumnya (saya bahkan mencoba menggunakan arr, tmp
):
[]
[1 2 3]
Anda bisa mengeceknya di go playground . Jadi mengapa saya tidak dapat menyalin sepotong?
dst
harus setidaknya sebesar banyak elemen yang ingin Anda salin (untuk salinan lengkap src
artinya len(dst) >= len(src)
).
b := append([]int{}, a...)