Sobes.tech
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.