ฉันต้องการทำสำเนาชิ้นส่วนใน Go และอ่านเอกสารมีฟังก์ชั่นการคัดลอกให้ฉันใช้
ฟังก์ชันคัดลอกในตัวจะคัดลอกองค์ประกอบจากชิ้นส่วนต้นทางไปยังชิ้นส่วนปลายทาง (ในกรณีพิเศษมันจะคัดลอกไบต์จากสตริงไปยังส่วนของไบต์ด้วย) ต้นทางและปลายทางอาจทับซ้อนกัน Copy ส่งคืนจำนวนองค์ประกอบที่คัดลอกซึ่งจะเป็นค่าต่ำสุดของ len (src) และ len (dst)
แต่เมื่อฉันทำ:
arr := []int{1, 2, 3}
tmp := []int{}
copy(tmp, arr)
fmt.Println(tmp)
fmt.Println(arr)
ของฉันtmp
ว่างเปล่าเหมือนเดิม (ฉันพยายามใช้ด้วยซ้ำarr, tmp
):
[]
[1 2 3]
คุณสามารถตรวจสอบที่ไปสนามเด็กเล่น เหตุใดฉันจึงไม่สามารถคัดลอกชิ้นส่วนได้?
dst
อย่างน้อยควรมีขนาดใหญ่เท่ากับองค์ประกอบจำนวนมากที่คุณต้องการคัดลอก (สำหรับสำเนาทั้งหมดsrc
หมายถึงlen(dst) >= len(src)
)
b := append([]int{}, a...)