Junior — Middle
Go'da dizilerle çalışırken dilimlerin kapasitesini dikkate almak neden önemlidir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, dilimler (slices), bir diziye işaretçi, uzunluk ve kapasite içeren dinamik yapılardır. Dilimin kapasitesi, yeni bellek ayırmadan kaç öğe içerebileceğini belirler.
Kapasiteyi dikkate almak önemlidir çünkü:
appendkullanarak öğeler eklerken, eğer dilimin uzunluğu kapasiteyi aşarsa, artırılmış kapasiteye sahip yeni bir dizi tahsis edilir ve veriler kopyalanır, bu da performansı etkiler.- Kapasiteyi bilmek, belleği verimli yönetmeye ve gereksiz tahsisleri önlemeye olanak tanır.
Örnek:
s := make([]int, 0, 5) // uzunluk 0, kapasite 5
fmt.Println(len(s), cap(s)) // 0 5
s = append(s, 1, 2, 3, 4, 5)
fmt.Println(len(s), cap(s)) // 5 5
s = append(s, 6) // kapasite aşıldı, yeni bir dizi tahsis edilir
fmt.Println(len(s), cap(s)) // 6 10 (yaklaşık)
Bu şekilde, kapasiteyi kontrol ederek dilimlerle çalışma optimize edilebilir.