Sobes.tech
Junior — Middle

Kas saaksite kirjeldada Map andmestruktuuride võtmete peamisi omadusi ja kasutusomadusi?

sobes.tech AI

Vastus AI-lt

Go (Golang) keeles on map sisseehitatud andmetüüp, mis esindab assotsiatiivset massiivi või sõnastikku, mis salvestab võti-väärtus paare.

map-i võtmete peamised omadused:

  • Võtmetüübi peab olema võrdlusvõimeline: võtmed peavad toetama võrdlusoperatsiooni ==. See tähendab, et võtmed võivad olla sellised tüübid nagu stringid, numbrid, näidikud, struktuurid, kui kõik nende väljad on võrdlusvõimelised.
  • Ei saa kasutada võtmetena viilmeid, kaarte või funktsioone, kuna need ei ole võrdlusvõimelised.
  • Võtmed on unikaalsed: ühes kaardis ei saa olla kahte sama võtit.

Näide string tüüpi võtmetega map loomise ja kasutamise kohta:

package main
import "fmt"

func main() {
    m := make(map[string]int)
    m["apple"] = 5
    m["banana"] = 3

    fmt.Println(m["apple"]) // Kuvab 5

    // Võtme olemasolu kontrollimine
    val, ok := m["pear"]
    if !ok {
        fmt.Println("Võti 'pear' ei leitud")
    } else {
        fmt.Println(val)
    }
}

Seega on map-i võtmete kasutamisel oluline valida tüüpe, mis toetavad võrdlust, et vältida kompileerimisvigu.