Sobes.tech
Junior — Middle

Map kapsayıcısında anahtar olarak hangi veri türleri kullanılabilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go'da, bir haritadaki anahtar yalnızca karşılaştırılabilir (karşılaştırılabilir) veri türleri olabilir. Bu, anahtar için == operatörünün tanımlanmış olması gerektiği anlamına gelir.

Uygun anahtar türleri:

  • Boolean değerler (bool)
  • Sayılar (int, float64, uint8 vb.)
  • Dizgeler (string)
  • İşaretçiler
  • Kanallar
  • Dinamik tür karşılaştırılabilir ise arayüzler
  • Tüm alanları karşılaştırılabilir olan yapılar

Anahtar olarak kullanılamaz:

  • Dilimler (slice)
  • Haritalar (map)
  • Fonksiyonlar

Örnek:

m := make(map[string]int)
m["key"] = 42

// Karşılaştırılabilir alanlara sahip yapı
type Point struct {
    X, Y int
}

m2 := make(map[Point]string)
m2[Point{1,2}] = "Bir nokta"

Karşılaştırılamayan bir türü anahtar olarak kullanmaya çalışırsanız, derleyici hata verir.