Sobes.tech
Junior — Middle

Go'da dilim (slice) ile çalışırken, eğer açıkça başlatılmamışsa hangi işlemler yapılabilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go'da, eğer dilim (slice) açıkça başlatılmamışsa (yani nil değerine sahipse), aşağıdaki işlemler yapılabilir:

  • nil olup olmadığını kontrol etmek (örneğin, if slice == nil), bu, dilimin başlatılıp başlatılmadığını belirlemek için faydalıdır.
  • len(slice) ve cap(slice) kullanarak uzunluk ve kapasiteyi almak. nil olan bir dilim için uzunluk ve kapasite 0'dır.
  • Eleman eklemek için append operatörünü kullanmak. Bu, orijinal dilim nil ise otomatik olarak yeni bir dilim oluşturur ve belleği ayırır.

Ancak, nil veya boş olan bir dilim öğelerine indeksle erişim yapılamaz, aksi takdirde panik (panic) oluşur.

Örnek:

var s []int // s == nil
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
s = append(s, 1)      // şimdi s başlatıldı ve [1] içeriyor