Sobes.tech
Junior — Middle

Kun je structuren gebruiken als sleutels in een associatieve array of map?

sobes.tech AI

Antwoord van AI

In Go kunnen sleutels in een map alleen van typen zijn die de vergelijking operatie ondersteunen (operator ==). Structuren kunnen als sleutels worden gebruikt als al hun velden vergelijkbaar zijn. Bijvoorbeeld, als een structuur alleen basis types bevat (int, string, enz.), kan deze als sleutel worden gebruikt. Als de structuur echter slices, kaarten of functies bevat, kan deze niet als sleutel worden gebruikt.

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]) // output: punt
}

Als de structuur niet-vergelijkbare velden bevat, geeft de compiler een fout.