В Golang в качестве ключей для мап (map) можно использовать типы данных, которые являются сравнимыми (comparable).
К сравнимым типам относятся:
bool)int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr, float32, float64, complex64, complex128, byte, rune)string)pointer types)channel types)struct)array)При этом сравнимыми являются структуры и массивы, только если все их элементы или поля также сравнимы.
Нельзя использовать в качестве ключей:
slice)map)func)