Sobes.tech
Back to questions
Junior — Middle
83

Какие свойства и требования к ключам в структуре данных map?

Answer from AI

sobes.tech AI

В Go ключи в структуре данных map должны удовлетворять следующим требованиям:

  • Ключи должны быть сравнимыми (comparable). Это значит, что тип ключа должен поддерживать операцию сравнения == и !=. Например, базовые типы (int, string, bool), указатели, интерфейсы с сравнимыми значениями подходят.
  • Нельзя использовать срезы (slice), карты (map), функции (func) в качестве ключей, так как они не сравнимы.

Пример создания map с ключами типа string:

m := make(map[string]int)
m["one"] = 1
m["two"] = 2

Если попытаться использовать несравнимый тип, например, срез, компилятор выдаст ошибку:

var s []int
m := make(map[[]int]string) // ошибка: invalid map key type []int

Таким образом, ключи должны быть таких типов, которые можно сравнивать для корректной работы map.