Middle
Kokie duomenų tipai gali būti naudojami kaip raktai?
sobes.tech AI
Atsakymas iš AI
Go kalba, žemėlapio raktai gali būti tik tie tipai, kurie palaiko palyginimo operaciją (==). Tai yra todėl, kad paieškai žemėlapyje reikalinga lyginant raktus.
Tipai, kuriuos galima naudoti kaip raktus:
- Pagrindiniai tipai:
int,float64,string,boolir kt. - Nuorodos
- Struktūros, jei visi jų laukai yra palyginami
- Masyvai, jei elementai yra palyginami
Tipai, kurių naudoti kaip raktus negalima:
- Slicing (
slice) - Žemėlapiai (
map) - Funkcijos
Tai yra todėl, kad šie tipai nepalaiko palyginimo naudojant ==.
Pavyzdys:
m := make(map[string]int)
m["key"] = 42
// Struktūra su palyginamiems laukais
type Point struct {
X, Y int
}
m2 := make(map[Point]string)
m2[Point{1, 2}] = "Taškas"
Jei bandysite naudoti slicing ar map kaip raktą, kompiliatorius pateiks klaidą.