Middle
Kādi datu tipi var tikt izmantoti kā atslēgas?
sobes.tech AI
Atbilde no AI
Go valodā atslēgas kartē var būt tikai tie tipi, kas atbalsta salīdzināšanas operāciju (==). Tas ir tāpēc, ka, meklējot atslēgu hash tabulā, ir nepieciešams salīdzināt atslēgas uz vienādību.
Tipi, kurus var izmantot kā atslēgas:
- Primitīvie tipi:
int,float64,string,boolutt. - Norādītāji
- Struktūras, ja visi to lauki ir salīdzināmi
- Masīvi, ja elementi ir salīdzināmi
Tipi, kurus nevar izmantot kā atslēgas:
- Sēklas (
slice) - Kartes (
map) - Funkcijas
Tas ir saistīts ar to, ka šie tipi neatbalsta salīdzināšanu ar ==.
Piemērs:
m := make(map[string]int)
m["key"] = 42
// Struktūra ar salīdzināmiem lauciņiem
type Point struct {
X, Y int
}
m2 := make(map[Point]string)
m2[Point{1, 2}] = "Punkts"
Ja mēģināsiet izmantot sēklu vai karti kā atslēgu, kompilators izdos kļūdu.