Sobes.tech
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, bool utt.
  • 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.