क्या किसी सरणी को दूसरे में कॉपी करने के लिए गो में कोई अंतर्निहित फ़ंक्शन है? क्या यह दो (या अधिक) आयामी सरणी के मामले में काम करेगा?गो भाषा में सरणी की प्रतिलिपि बनाने के लिए फ़ंक्शन
उत्तर
क्या एक सरणी को दूसरे में कॉपी करने के लिए गो भाषा में कोई अंतर्निहित फ़ंक्शन है?
हाँ: http://play.golang.org/p/_lYNw9SXN5
a := []string{
"hello",
"world",
}
b := []string{
"goodbye",
"world",
}
copy(a, b)
// a == []string{"goodbye", "world"}
विल दो (या अधिक) आयामी सरणी के मामले में यह काम करता है? http://play.golang.org/p/0gPk6P1VWh
a := make([][]string, 10) b := make([][]string, 10) for i := range b { b[i] = make([]string, 10) for j := range b[i] { b[i][j] = strconv.Itoa(i + j) } } copy(a, b) // a and b look the same b[1] = []string{"some", "new", "data"} // b's second row is different; a still looks the same b[0][0] = "apple" // now a looks different
मैं वहाँ एक अंतर्निहित बहुआयामी सरणियों के गहरे copys करने के लिए नहीं लगता है: आप इसे मैन्युअल रूप से कर सकते हैं
copy
पंक्तियों की एक उथले नकल करना होगा जैसे: http://play.golang.org/p/nlVJq-ehzC
a := make([][]string, 10)
b := make([][]string, 10)
for i := range b {
b[i] = make([]string, 10)
for j := range b[i] {
b[i][j] = strconv.Itoa(i + j)
}
}
// manual deep copy
for i := range b {
a[i] = make([]string, len(b[i]))
copy(a[i], b[i])
}
b[0][0] = "apple"
// a still looks the same
संपादित करें: के रूप में टिप्पणी में कहा, मैं "एक सरणी कॉपी" आप मतलब था "एक टुकड़ा की एक गहरी प्रतिलिपि करते हैं", के रूप में सरणियों 0,123,665 के साथ गहरे कॉपी किया जा सकता द्वारा ग्रहण कियाऑपरेटर jnml के जवाब के अनुसार (क्योंकि सरणियों मूल्य प्रकार के होते हैं): http://play.golang.org/p/8EuFqXnqPB
बहुत बहुत धन्यवाद। इससे –
आपकी मदद मिली है: "क्या एक स्लाइस को दूसरे में कॉपी करने के लिए गो भाषा में कोई अंतर्निहित फ़ंक्शन है?" जो ओपी वास्तव में चाहता था वह हो सकता है लेकिन आपको सरणी और स्लाइस के बीच अंतर समझा जाना चाहिए। –
प्राथमिक जाओ में एक सरणी कॉपी करने के लिए "समारोह", assignment operator = है, क्योंकि यह किसी भी अन्य प्रकार के किसी भी अन्य मूल्य के लिए मामला है।
package main
import "fmt"
func main() {
var a, b [4]int
a[2] = 42
b = a
fmt.Println(a, b)
// 2D array
var c, d [3][5]int
c[1][2] = 314
d = c
fmt.Println(c)
fmt.Println(d)
}
आउटपुट:
[0 0 42 0] [0 0 42 0]
[[0 0 0 0 0] [0 0 314 0 0] [0 0 0 0 0]]
[[0 0 0 0 0] [0 0 314 0 0] [0 0 0 0 0]]
उपयोग copy
http://play.golang.org/p/t7P6IliMOK
a := []int{1, 2, 3}
var b [3]int
fmt.Println("A:", a)
fmt.Println("B:", b)
copy(b[:], a)
fmt.Println("A:", a)
fmt.Println("B2:", b)
b[1] = 9
fmt.Println("A:", a)
fmt.Println("B3:", b)
बाहर:
A: [1 2 3]
B: [0 0 0]
A: [1 2 3]
B2: [1 2 3]
A: [1 2 3]
B3: [1 9 3]
- 1. गो भाषा में सरणी की तुलना
- 2. गो भाषा में, मैं ऑब्जेक्ट की सरणी के लिए json unmarshal कैसे करूं?
- 3. एक्सेल में स्वरूपण की प्रतिलिपि बनाने के लिए तेज़ तरीका
- 4. गो प्रोग्रामिंग भाषा के लिए PostgreSQL ड्राइवर
- 5. गो में फ़ंक्शन ओवरलोडिंग के लिए वैकल्पिक?
- 6. सेबस्क्रिप्ट एक्सकोड में फ़ोल्डरों की प्रतिलिपि बनाने के लिए?
- 7. गो भाषा में पर्यवेक्षक पैटर्न
- 8. फ़्लोचार्ट्स बनाने के लिए भाषा
- 9. प्रतिलिपि बनाने वाले परमाणुओं की प्रतिलिपि बनाने के लिए अनलॉकिंग तरीका
- 10. वर्तमान गो भाषा परियोजनाएं
- 11. कोडर की प्रतिलिपि बनाने और चिपकाने के लिए सहायता
- 12. सरणी की प्रतिलिपि कैसे करें?
- 13. निर्भरता जोड़ते समय जेएआर की प्रतिलिपि बनाने के लिए मेवेन
- 14. फाइलों की प्रतिलिपि बनाने के लिए सरल कठपुतली स्क्रिप्ट
- 15. एक CRITICAL_SECTION की प्रतिलिपि बनाने के लिए ठीक है?
- 16. विंडोज शेयर (एसएमबी) की प्रतिलिपि बनाने के लिए चींटी कार्य
- 17. rsync केवल विशेष फ़ोल्डरों की प्रतिलिपि बनाने के लिए
- 18. मल्टीथ्रेडेड लिखने के साथ एनएसएमयूटेबलएरे की प्रतिलिपि बनाने से बचें
- 19. असाइन किए गए बिट सरणी की प्रतिलिपि बनाने के लिए एक समय कुशल एल्गोरिदम क्या है?
- 20. सी # डबल [,] सरणी को दोहरी [] में प्रतिलिपि बनाना संभव है [] एक प्रतिलिपि बनाने के बिना
- 21. प्रतिलिपि बनाने वाले प्रतिलिपि उदाहरण
- 22. मेमोरी की प्रतिलिपि ब्लॉक
- 23. PHP फ़ंक्शन सरणी से क्वेरी स्ट्रिंग बनाने के लिए
- 24. LINQ अनुक्रमिक संख्याओं की int सरणी बनाने के लिए
- 25. Google गो भाषा में अपवाद हैंडलिंग
- 26. अस्थिर प्रतिलिपि बनाने के लिए क्या है?
- 27. गो भाषा में स्थिरांक का समूह
- 28. भाषा संपादक बनाने के लिए भाषा/जीयूआई लाइब्रेरी
- 29. ऑब्जेक्ट की विधि की प्रतिलिपि प्रतिलिपि - प्रतिलिपि कौन करता है?
- 30. पंक्तियों की प्रतिलिपि बनाने का तरीका आर
Pitfall: सरणी और स्लाइस बहुत समान दिख सकते हैं, व्यवहार अलग है। Arrays मूल्य से हैं, संदर्भ द्वारा स्लाइस (सरलीकृत)। – Christian