Sobes.tech
Senior

Kādi datu tipi var tikt izmantoti kā kartes atslēga? Vai var izmantot masīvu kā atslēgu?

sobes.tech AI

Atbilde no AI

Go'da, kartes atslēga var būt jebkurš tips, kas atbalsta salīdzināšanas operāciju == un !=. Tas nozīmē, ka atslēgas var būt pamattipi (int, string, bool utt.), rādītāji, struktūras, ja visi to lauki ir salīdzināmi, kā arī saskarnes, ja dinamiskais tips ir salīdzināms.

Go masīvi ir salīdzināmi, ja to elementi ir salīdzināmi, tāpēc masīvus var izmantot kā atslēgas kartē. Piemēram:

m := make(map[[3]int]string)
 m[[3]int{1, 2, 3}] = "vērtība"

Tomēr, slices (griezumi) nevar tikt izmantoti kā atslēgas, jo tie nav salīdzināmi (izņemot, ja tos salīdzina ar nil).