Junior — Middle
Могу ли структуре да се користе као кључеви у асоцијативном низу или мапи?
sobes.tech АИ
Одговор од АИ
U Go, ključevi u mapi mogu biti samo tipovi koji podržavaju operaciju poređenja (operator ==). Strukture mogu biti korišćene kao ključevi ako su sva njihova polja porediva. Na primer, ako struktura sadrži samo osnovne tipove (int, string itd.), može se koristiti kao ključ. Međutim, ako struktura sadrži slice-ove, mape ili funkcije, ne može se koristiti kao ključ.
Primer:
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] = "tačka"
fmt.Println(m[p]) // izlaz: tačka
}
Ako struktura sadrži neporediva polja, kompajler će prikazati grešku.