Sobes.tech
Junior — Middle

Може ли се структура података користити као кључ у мапи или хеш табли?

sobes.tech АИ

Одговор од АИ

U Go jeziku, struktura podataka može se koristiti kao ključ u mapi (map) ako zadovoljava zahteve za poređenje (comparable). To znači da svi njeni atributi moraju biti tipovi koji se mogu porediti pomoću operatora ==.

Na primer, strukture koje sadrže samo osnovne tipove (int, string, bool itd.) ili druge poredivе strukture mogu biti ključevi. Međutim, strukture koje sadrže slice-ove, mape ili funkcije ne mogu biti ključevi, jer ti tipovi nisu poredivi.

Primer:

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] = "tačka"
    fmt.Println(m[p]) // izlaz: tačka
}

Ako struktura sadrži neporediva polja, kompajler će prikazati grešku pri pokušaju da je koristi kao ključ mape.