Cách sao chép slice và map trong Go như thế nào?
Cách sao chép slice và map trong Go như thế nào?
Sao chép slice: Ta có thể dùng phương thức có sẵn copy() như sau:
slice1 := []int{1, 2}
slice2 := []int{3, 4}
slice3 := slice1
copy(slice1, slice2)
fmt.Println(slice1, slice2, slice3)
Trong đoạn code trên, ta sao chép giá trị của slice2 vào slice1 và sử dụng slice3 để giữa một tham chiếu đến slice gốc để kiểm tra slice có được sao chép hay không. Kết quả sẽ là:
[3 4] [3 4] [3 4]
Nếu ta muốn sao chép slice mà không có nội dung, ta chỉ cần dùng toán tử = như code bên dưới:
slice1 := []int{1, 2}
slice2 := []int{3, 4}
slice3 := slice1
slice1 = slice2
fmt.Println(slice1, slice2, slice3)
Kết quả là:
[3 4] [3 4] [1 2]
Sao chép map: Ta có thể sao chép một map bằng cách duyệt qua k...
middle