Senior
Kokie duomenų tipai gali būti naudojami kaip žemėlapio raktas? Ar galima naudoti masyvą kaip raktą?
sobes.tech AI
Atsakymas iš AI
Go'da, žemės ūkio raktas gali būti bet koks tipas, kuris palaiko palyginimo operaciją == ir !=. Tai reiškia, kad raktai gali būti pagrindiniai tipai (int, string, bool ir kt.), nuorodos, struktūros, jei visi jų laukai yra palyginami, taip pat sąsajos, jei dinaminis tipas yra palyginamas.
„Go“ masyvai yra palyginami, jei jų elementai yra palyginami, todėl masyvai gali būti naudojami kaip raktai žemėlapyje. Pavyzdžiui:
m := make(map[[3]int]string)
m[[3]int{1, 2, 3}] = "reikšmė"
Tačiau, slices (skiltelės) negali būti naudojamos kaip raktai, nes jie nėra palyginami (išskyrus palyginimą su nil).