Junior — Middle
Kan een gegevensstructuur worden gebruikt als sleutel in een kaart of hash-tabel?
sobes.tech AI
Antwoord van AI
In Go kan een gegevensstructuur worden gebruikt als sleutel in een kaart (map) als deze voldoet aan de vereisten voor vergelijkbaarheid (comparable). Dit betekent dat alle velden van de structuur van typen moeten zijn die kunnen worden vergeleken met de operator ==.
Bijvoorbeeld, structuren die alleen basis typen bevatten (int, string, bool, enz.) of andere vergelijkbare structuren kunnen als sleutels worden gebruikt. Structuren die slices, kaarten of functies bevatten, kunnen echter geen sleutels zijn, omdat deze typen niet vergelijkbaar zijn.
Voorbeeld:
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] = "punt"
fmt.Println(m[p]) // uitvoer: punt
}
Als de structuur niet-vergelijkbare velden bevat, geeft de compiler een fout bij het proberen deze als sleutel te gebruiken.