Tôi cần tạo một bản sao của một lát cắt trong Go và đọc tài liệu, có chức năng sao chép theo ý tôi.
Chức năng sao chép tích hợp sao chép các phần tử từ một lát nguồn vào một lát đích. (Là một trường hợp đặc biệt, nó cũng sẽ sao chép các byte từ một chuỗi sang một phần byte.) Nguồn và đích có thể trùng nhau. Copy trả về số phần tử được sao chép, sẽ là số lượng tối thiểu của len (src) và len (dst).
Nhưng khi tôi làm:
arr := []int{1, 2, 3}
tmp := []int{}
copy(tmp, arr)
fmt.Println(tmp)
fmt.Println(arr)
Của tôi tmp
trống như trước đây (tôi thậm chí đã cố gắng sử dụng arr, tmp
):
[]
[1 2 3]
Bạn có thể kiểm tra nó trên sân chơi go . Vậy tại sao tôi không thể sao chép một lát cắt?
dst
ít nhất phải lớn bằng nhiều phần tử bạn muốn sao chép (đối với một bản sao đầy đủ src
có nghĩa là len(dst) >= len(src)
).
b := append([]int{}, a...)