Junior — Middle
Yapıların, ilişkilendirilmiş dizi veya haritada anahtar olarak kullanılabilir mi?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go'da, bir haritadaki anahtarlar yalnızca karşılaştırma işlemini destekleyen türler olabilir (== operatörü). Yapılar, tüm alanları karşılaştırılabilir ise anahtar olarak kullanılabilir. Örneğin, bir yapı yalnızca temel türler (int, string vb.) içeriyorsa, anahtar olarak kullanılabilir. Ancak, yapı dilimlerini, haritalarını veya fonksiyonlarını içeriyorsa, anahtar olarak kullanılamaz.
Örnek:
package main
import "fmt"
type Point struct {
X, Y int
}
func main() {
m := make(map[Point]string)
p := Point{X: 1, Y: 2}
m[p] = "nokta"
fmt.Println(m[p]) // çıktı: nokta
}
Eğer yapı karşılaştırılamayan alanlar içeriyorsa, derleyici hata verecektir.