Junior — Middle
Kuidas saab kasutada võtmeid kaardil andmestruktuuride loomiseks, mida algselt keeles ette nähtud ei ole?
sobes.tech AI
Vastus AI-lt
Go kaard on assotsiatiivne massiiv, kus võtmed võivad olla mitte ainult lihtsad tüübid, vaid ka keerukad, kui need on võrdluskõlblikud (näiteks stringid, numbrid, näidikud, struktuurid ilma viilude ja kaartideta). See võimaldab kasutada kaarte keerukate andmestruktuuride loomiseks, mis algselt keeles puuduvad.
Näiteks võite kasutada struktuuri võtmena, et rakendada kahemõõtmelist maatriksit või graafi:
// Võti on punkti koordinaadid
type Point struct {
X, Y int
}
// Väärtus võib olla värv või kaal
var matrix = make(map[Point]string)
matrix[Point{X:1, Y:2}] = "punane"
matrix[Point{X:3, Y:4}] = "sinine"
Samuti võite kasutada kaarti koguna, kus võti on element ja väärtus on tühi struktuur (struct{}), mis võtab 0 baiti:
set := make(map[string]struct{})
set["õun"] = struct{}{}
set["banaan"] = struct{}{}
// Kontrollida, kas element on olemas
if _, exists := set["õun"]; exists {
fmt.Println("Õun on kogus")
}
Seega on kaardid Go-s paindlik tööriist erinevate andmestruktuuride loomiseks, laiendades keele võimalusi.