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.