Sobes.tech
Senior

Mida sa oskad rääkida mapidest Go keeles?

sobes.tech AI

Vastus AI-lt

Go keeles on kaarditüüp sisseehitatud andmetüüp, mis rakendab assotsiatiivset massiivi või sõnastikku, kus võtmed on seotud väärtustega.

Kaardi omadused Go-s:

  • Võtmed ja väärtused on määratletud tüüpidega, näiteks map[string]int — võtmed on stringid, väärtused on täisarvud.
  • Kaart algatatakse make funktsiooni abil, näiteks: m := make(map[string]int).
  • Elementidele pääseb ligi m[key] kaudu.
  • Kui võti puudub, tagastatakse väärtuse nullväärtus.
  • Võtme olemasolu saab kontrollida teise tagastatava väärtusega: val, ok := m[key].
  • Kaardid ei ole järjestatud, läbimise järjekord on juhuslik.
  • Kaardid ei ole voog-turvalised, paralleelset juurdepääsu jaoks tuleb kasutada sünkroniseerimist.

Näide:

package main
import "fmt"

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

    val, ok := m["apple"]
    if ok {
        fmt.Println("apple:", val)
    }

    // Võtme kustutamine
    delete(m, "banana")
}