Sobes.tech
Junior — Middle

Kaip galima naudoti raktus žemėlapyje kuriant duomenų struktūras, kurios iš pradžių nėra numatytos kalboje?

sobes.tech AI

Atsakymas iš AI

Go žemėlapis yra susiejimo masyvas, kur raktai gali būti ne tik paprasti tipai, bet ir sudėtiniai, jei jie yra palyginami (pavyzdžiui, eilutės, skaičiai, rodyklės, struktūros be iškarpų ir žemėlapių). Tai leidžia naudoti žemėlapius kuriant sudėtingas duomenų struktūras, kurios iš pradžių nėra prieinamos kalboje.

Pavyzdžiui, galite naudoti struktūrą kaip raktą, kad įgyvendintumėte dviejų matmenų matricą arba grafą:

// Raktas yra taško koordinatės
type Point struct {
    X, Y int
}

// Reikšmė gali būti spalva arba svoris
var matrix = make(map[Point]string)

matrix[Point{X:1, Y:2}] = "raudona"
matrix[Point{X:3, Y:4}] = "mėlyna"

Taip pat galite naudoti žemėlapį kaip rinkinį, kur raktas yra elementas, o reikšmė — tuščia struktūra (struct{}), kuri užima 0 baitų:

set := make(map[string]struct{})
set["obuolys"] = struct{}{}
set["bananas"] = struct{}{}

// Patikrinti, ar elementas yra
if _, exists := set["obuolys"]; exists {
    fmt.Println("Obuolys yra rinkinyje")
}

Taip, žemėlapiai Go yra lankstus įrankis kuriant įvairias duomenų struktūras, plečiant kalbos galimybes.