Senior
Slice nedir ve dizi ile nasıl farklılık gösterir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, dizi (array), aynı türden sabit boyutlu bir yapıdır. Dizinin boyutu, tanımlama sırasında belirlenir ve program çalışması sırasında değiştirilemez.
Dilimi (slice), dizinin dinamik ve boyutu değiştirilebilir bir dilimidir. Bir gösterge, uzunluk ve kapasite içeren bir yapıdır. Dilimler, dizinin alt kümeleriyle çalışmaya olanak tanır ve gerekirse otomatik olarak genişler.
Ana farklar:
- Boyut: dizi sabit boyutludur, dilim ise dinamik.
- Aktarım: diziler değer olarak (kopyalanır) geçirilir, dilimler ise referans olarak (dizinin göstericisi) geçirilir.
- Esneklik: dilim,
appendfonksiyonu ile genişletilebilir, dizi ise genişletilemez.
Örnek:
var arr [3]int = [3]int{1, 2, 3} // sabit boyutlu dizi
var s []int = arr[0:2] // dizinin bir parçasına referans olan dilim
s = append(s, 4) // dilim genişler, gerekirse yeni bir dizi oluşturulur