Junior — Middle
Lze struktury používat jako klíče v asociativním poli nebo mapě?
sobes.tech AI
Odpověď od AI
V jazyce Go mohou být klíče v mapě pouze typy, které podporují operaci porovnání (operátor ==). Struktury lze použít jako klíče, pokud jsou všechny jejich pole porovnatelné. Například pokud struktura obsahuje pouze základní typy (int, string atd.), může být použita jako klíč. Pokud však struktura obsahuje slices, mapy nebo funkce, nelze ji použít jako klíč.
Příklad:
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] = "bod"
fmt.Println(m[p]) // výstup: bod
}
Pokud struktura obsahuje nesrovnatelné pole, kompilátor vypíše chybu.