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