Sobes.tech
Junior — Middle

Kādi datu tipi var kalpot kā atslēga kartes konteinerī?

sobes.tech AI

Atbilde no AI

Go valodā atslēga kartē var būt tikai no salīdzināmiem (comparable) datu tipiem. Tas nozīmē, ka atslēgai jābūt definētai ar operatoru ==.

Piemēroti atslēgu tipi:

  • Būtības vērtības (bool)
  • Skaitļi (int, float64, uint8 u.c.)
  • Rindas (string)
  • Norādītāji
  • Kanāli
  • Interfeisi, ja dinamiskais tips ir salīdzināms
  • Struktūras, ja visi lauki ir salīdzināmi

Nav atļauts izmantot kā atslēgu:

  • Sērijas (slice)
  • Kartes (map)
  • Funkcijas

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 nesalīdzināmu tipu kā atslēgu, kompilators izmetīs kļūdu.