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,boolvb. - İş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.