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.