Junior — Middle
Какви типове данни са допустими като ключове за структурата map?
sobes.tech AI
Отговор от AI
В Go ключовете за map могат да бъдат само тези типове данни, които поддържат операцията за сравнение (сравними). Това означава, че ключовете могат да бъдат:
- Булеви стойности (bool)
- Числа (int, float, complex и т.н.)
- Стриймове (string)
- Указатели
- Интерфейси, ако динамичният тип поддържа сравнение
- Структури, ако всички техни полета са сравними
Не могат да се използват срезове, карти, функции и други несравними типове като ключове, тъй като те не поддържат оператора ==.
Пример:
m := make(map[string]int)
m["key"] = 42
// Структура с сравними полета
type Point struct {
X, Y int
}
m2 := make(map[Point]string)
m2[Point{1,2}] = "Точка"