Junior — Middle
Go'da dilim oluşturma yöntemlerini var, make ve indeks ataması veya append kullanımıyla nasıl ayırt edersiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde dilimler (slices) farklı şekillerde oluşturulabilir ve bunlar başlatma ve bellek tahsisi açısından farklılık gösterir:
varkullanarak bildirim — boş bir nil-dilim oluşturur, bu dilim herhangi bir diziye işaret etmez ve uzunluğu ile kapasitesi 0'dır.
var s []int // nil-dilim
makeile dilim oluşturma — belirli uzunluk ve kapasiteli bir dizi tahsis eder ve bu diziye işaret eden bir dilim döner.
s := make([]int, 5) // uzunluğu 5 olan, sıfırlarla doldurulmuş dilim
-
İndekslerle atama — yalnızca dilim zaten başlatılmışsa ve yeterli uzunluktaysa mümkündür.
-
appendile öğe ekleme — öğeleri dilime ekler, gerekirse kapasiteyi artırır ve yeni bir dizi tahsis eder.
s = append(s, 10) // dilime 10 öğesini ekler
Bu şekilde, var boş bir nil-dilim oluşturur, make tahsis edilmiş bellekle bir dilim oluşturur, indeks ataması mevcut uzunluk gerektirir ve append dilimi dinamik olarak genişletir.