एक टुकड़ा एक अमूर्त कवर के तहत एक सरणी का उपयोग करता है है।
cap
आप अंतर्निहित सरणी की क्षमता बताता है। len
आपको बताता है कि सरणी में कितनी वस्तुएं हैं।
जाओ में टुकड़ा अमूर्त के बाद से यह आपके लिए अंतर्निहित सरणी आकार परिवर्तन बहुत अच्छा है, के साथ साथ जाओ में तो स्लाइस लगभग हमेशा के बजाय इस्तेमाल कर रहे हैं सरणियों आकार नहीं बदला जा सकता है।
उदाहरण:
s := make([]int, 0, 3)
for i := 0; i < 5; i++ {
s = append(s, i)
fmt.Printf("cap %v, len %v, %p\n", cap(s), len(s), s)
}
विल उत्पादन कुछ इस तरह:
cap 3, len 1, 0x1040e130
cap 3, len 2, 0x1040e130
cap 3, len 3, 0x1040e130
cap 8, len 4, 0x10432220
cap 8, len 5, 0x10432220
एक बार क्षमता पूरा किया जाता है आप देख सकते हैं, append
एक बड़ी क्षमता के साथ एक नया टुकड़ा वापस आ जाएगी। चौथे पुनरावृत्ति पर आपको एक बड़ी क्षमता और एक नया सूचक पता दिखाई देगा।
Play example
मैं तुम्हें सरणियों के बारे में पूछने के लिए और संलग्न नहीं किया था एहसास लेकिन वे टुकड़ा और builtins के लिए कारण को समझने में बहुत मूलभूत हैं।
क्या आपने पूछने से पहले न्यूनतम मात्रा में शोध किया है? केवल खोजशब्दों के लिए googling निश्चित रूप से [इस विषय पर जाने के लिए लेख] (https://blog.golang.org/go-slices-usage-and-internals) उत्पन्न करेगा जो आपके बारे में पूछे गए सभी बताते हैं। – kostix