Sobes.tech
Junior — Middle

Vai struktūras var izmantot kā atslēgas asociatīvajā masīvā vai kartē?

sobes.tech AI

Atbilde no AI

Go valodā atslēgas kartē var būt tikai to tipu, kas atbalsta salīdzināšanas operāciju (== operators). Struktūras var tikt izmantotas kā atslēgas, ja visi to lauki ir salīdzināmi. Piemēram, ja struktūra satur tikai pamattipus (int, string utt.), to var izmantot kā atslēgu. Ja struktūra satur sērijas, kartes vai funkcijas, to nevar izmantot kā atslēgu.

Piemērs:

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] = "punkts"
    fmt.Println(m[p]) // iznākums: punkts
}

Ja struktūra satur nesalīdzināmus laukus, kompilators izmetīs kļūdu.