Junior — Middle
Használható-e adatstruktúra kulcsként térképen vagy hash-táblában?
sobes.tech MI
Válasz az MI-től
Go nyelvben egy adatszerkezet használható kulcsként egy térképen (map), ha megfelel a összehasonlíthatóság (comparable) követelményeinek. Ez azt jelenti, hogy az összes mező típusának összehasonlíthatónak kell lennie a == operátorral.
Például, olyan szerkezetek, amelyek csak alapvető típusokat (int, string, bool stb.) vagy más összehasonlítható szerkezeteket tartalmaznak, kulcsként használhatók. Azonban, szerkezetek, amelyek szeleteket, térképeket vagy függvényeket tartalmaznak, nem lehetnek kulcsok, mivel ezek a típusok nem összehasonlíthatók.
Példa:
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] = "pont"
fmt.Println(m[p]) // kimenet: pont
}
Ha a szerkezet nem összehasonlítható mezőket tartalmaz, a fordító hibát fog jelezni, amikor megpróbálja használni kulcsként a térképen.