Sobes.tech
Junior — Middle

Sıfır değere sahip bir harita ile sıfır değere sahip bir dilim arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, sıfır değere sahip bir harita (map), henüz başlatılmamış ve nil olan bir haritadır. Böyle bir haritaya yazmaya çalışmak panik ile sonuçlanır.

Sıfır değere sahip bir dilim (slice), nil dilimidir, yani bir diziye işaret etmez ve uzunluğu ile kapasitesi 0'dır. Güvenle kullanılabilir, örneğin okuma veya fonksiyonlara iletmek için.

Ana farklar:

  • map == nil ifadesi, haritanın başlatılmadığını ve öğeleri kabul edemeyeceğini gösterir.
  • slice == nil ifadesi, dilimin boş olduğunu ve bir diziye işaret etmediğini, ancak okuma (boş olacak) ve iletme için kullanılabileceğini gösterir.

Örnek:

var m map[string]int // m == nil
// m["key"] = 1 // panic: nil haritaya atama

var s []int // s == nil
fmt.Println(len(s)) // 0
s = append(s, 1) // artık dilim başlatıldı

Bu nedenle, nil harita yazma için uygun değildir, ve nil dilim okuma ve genişletme için güvenlidir.