Junior — Middle
Je možné použiť dátovú štruktúru ako kľúč v mape alebo hash tabuľke?
sobes.tech AI
Odpoveď od AI
V jazyku Go môže byť dátová štruktúra použitá ako kľúč v mape (mapa), ak spĺňa požiadavky na porovnateľnosť (comparable). To znamená, že všetky polia štruktúry musia byť typy, ktoré je možné porovnať pomocou operátora ==.
Napríklad, štruktúry obsahujúce iba základné typy (int, string, bool atď.) alebo iné porovnateľné štruktúry môžu byť kľúčmi. Avšak štruktúry obsahujúce slices, mapy alebo funkcie nemôžu byť kľúčmi, pretože tieto typy nie sú porovnateľné.
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 neporedivé polia, kompilátor vypíše chybu pri pokuse ju použiť ako kľúč v mape.