Senior
Go'da dizi ile dilim arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, dizi (array) sabit boyutlu bir yapıdır ve boyutu bildirim sırasında belirlenir ve değiştirilemez. Diziler, bellekte ardışık olarak saklanır ve fonksiyona geçirilirken tamamen kopyalanır.
Dilim (slice), boyutu dinamik ve değiştirilebilir olan, dizinin ardışık bir bölümüne referans sağlayan bir türdür. Bir dilim, ilk elemana işaretçi, uzunluk ve kapasite içerir.
Ana farklar:
- Dizinin boyutu sabittir, dilimin boyutu dinamik.
- Bir dizi fonksiyona geçirilirken kopyalanır, dilim ise temel dizine referans olarak geçirilir.
- Dilim genişletilebilir (append), dizi ise genişletilemez.
Örnek:
var arr [3]int = [3]int{1, 2, 3} // sabit boyutlu dizi
slice := arr[0:2] // dizinin ilk iki elemanına referans veren dilim
slice = append(slice, 4) // dilim genişler, muhtemelen yeni bir temel dizi oluşturulur
Bu nedenle, dilimler dinamik koleksiyonlarla çalışmak için uygundur, diziler ise sabit veri kümeleri için idealdir.