Junior — Middle
Je možné použiť štruktúry ako kľúče v asociatívnom poli alebo mape?
sobes.tech AI
Odpoveď od AI
V jazyku Go môžu byť kľúče v mape iba typy, ktoré podporujú operáciu porovnania (operátor ==). Štruktúry môžu byť použité ako kľúče, ak sú všetky ich polia porovnateľné. Napríklad, ak štruktúra obsahuje iba základné typy (int, string atď.), môže byť použitá ako kľúč. Ak však štruktúra obsahuje slices, mapy alebo funkcie, nemôže byť použitá ako kľúč.
Prí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
}
Ak štruktúra obsahuje nesúťažiteľné polia, kompilátor vypíše chybu.