:Git dilimleri - kapasite/uzunluk?
func main() {
a := make([]int, 5)
// [0,0,0,0,0] len=5 cap=5
b := make([]int, 0, 5)
// [] len=0 cap=5
c := b[:2]
// [0,0] len=2 cap=5
d := c[2:5]
// [0,0,0] len=3 cap=3
}
neden c
[0,0]
gibi görünüm ve sahip uzunluğu 2? b
başlangıçta sıfır değildi, dolayısıyla []
. c
değerini b[:2]
olarak ayarlamak ilk iki öğeyi sıfırlıyor mu?
Ayrıca, neden kapasitesi d
3? Çok karışık.
Şimdiden teşekkürler.
Sen kullanışlı aşağıdaki makaleye bulabilirsiniz:
dilim anlamak istiyorum yeni gelenler ve diziler için blog yayınları basvurulacak https://blog.golang.org/ dilimler – kostya
Son sorunuz için: kapasite, bir dilimin erişebileceği ilk öğe ile alttaki dizinin son öğesi arasındaki öğelerin sayısıdır. 'D' dilimine erişen ilk öğe, alttaki dizide 2. öğe, dolayısıyla kapasite 3'tür. – Akavall
Olası çoğaltma [Dilimleme kapasitesinin azaltılması] (http://stackoverflow.com/questions/43294449/decreasing-slice-capacity) –