Sobes.tech
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, append fonksiyonu 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