मुझे गो में एक स्लाइस की प्रतिलिपि बनाने की आवश्यकता है और डॉक्स पढ़ने से मेरे निपटान में एक कॉपी फ़ंक्शन है।
एक अंतर्निहित स्लाइस से तत्वों को एक गंतव्य स्लाइस में कॉपी करता है। (एक विशेष मामले के रूप में, यह बाइट्स को एक स्ट्रिंग से बाइट्स के स्लाइस में भी कॉपी करेगा।) स्रोत और गंतव्य ओवरलैप हो सकता है। कॉपी किए गए तत्वों की संख्या की प्रतिलिपि देता है, जो कि लेन (src) और लेन (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...)