Sobes.tech
Middle

Anahtar olarak hangi veri türleri kullanılabilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go'da, bir haritadaki anahtarlar yalnızca karşılaştırma işlemini (== operatörü) destekleyen türler olabilir. Bu, bir anahtarı karma tablosunda ararken, anahtarların eşitlik açısından karşılaştırılması gerektiği için olur.

Anahtar olarak kullanılabilecek türler:

  • İlkel türler: int, float64, string, bool vb.
  • İşaretçiler
  • Tümler, eğer tüm alanları karşılaştırılabilir ise
  • Diziler, eğer elemanlar karşılaştırılabilir ise

Anahtar olarak kullanılamayacak türler:

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

Bunlar, bu türlerin == ile karşılaştırmayı desteklemediği için olur.

Ö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"

Bir dilim veya haritayı anahtar olarak kullanmaya çalışırsanız, derleyici bir hata verecektir.