Ключами в словаре Go могут быть типы, для которых определена операция сравнения на равенство ==. Это:
int, int8, int16, int32, int64, uint, uint8, uint16, uintptr, float32, float64, complex64, complex128.bool.string.type MyInt int).*T (для любого типа T).chan T (для любого типа T).interface{} или именованный интерфейс, если его динамический тип удовлетворяет условию сравнимости.struct, если все поля структуры сравнимы.[n]T, если тип элементов T сравнимый.Типы, которые не могут использоваться в качестве ключей словаря:
slice).func).map).Причина в том, что для этих типов не определена операция ==. Срезы, функции и словари не являются сравнимыми.
Пример использования:
go