Junior — Middle
Jakie typy danych są dozwolone jako klucze dla struktury mapy?
sobes.tech AI
Odpowiedź od AI
W Go klucze do map mogą być tylko tymi typami danych, które obsługują operację porównania (porównywalne). Oznacza to, że klucze mogą być:
- Wartości logiczne (bool)
- Liczby (int, float, complex itp.)
- Ciągi znaków (string)
- Wskaźniki
- Interfejsy, jeśli typ dynamiczny obsługuje porównanie
- Struktury, jeśli wszystkie ich pola są porównywalne
Nie można używać jako kluczy wycinków, map, funkcji i innych nieporównywalnych typów, ponieważ nie obsługują operatora ==.
Przykład:
m := make(map[string]int)
m["key"] = 42
// Struktura z porównywalnymi polami
type Point struct {
X, Y int
}
m2 := make(map[Point]string)
m2[Point{1,2}] = "Punkt"