Sobes.tech
Junior — Middle

Vai datu struktūru var izmantot kā atslēgu kartē vai hesh tabulā?

sobes.tech AI

Atbilde no AI

Go valodā datu struktūra var tikt izmantota kā atslēga kartē (map), ja tā atbilst salīdzināmības (comparable) prasībām. Tas nozīmē, ka visas struktūras lauki ir jābūt tipiem, kurus var salīdzināt ar == operatoru.

Piemēram, struktūras, kas satur tikai pamattipus (int, string, bool utt.) vai citas salīdzināmas struktūras, var būt kā atslēgas. Tomēr struktūras, kas satur sērijas, kartes vai funkcijas, nevar būt kā atslēgas, jo šie tipi nav salīdzināmi.

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]) // izvade: punkts
}

Ja struktūra satur nesalīdzināmus laukus, kompilators izdos kļūdu, mēģinot to izmantot kā atslēgu kartē.