Sobes.tech
Back to questions
Senior
2

Можно ли сделать константную память, не убирая map?

Companies where asked
Яндекс

Answer from AI

sobes.tech AI

В Go нельзя сделать map полностью константным, так как встроенный тип map является изменяемым и не поддерживает константы напрямую. Однако, можно добиться эффекта "константной" памяти с map, если:

  • Инициализировать map один раз и не изменять его в дальнейшем (не добавлять и не удалять элементы).
  • Сделать map приватным и предоставить только методы для чтения, без методов для изменения.

Пример:

var constMap = map[string]int{
    "one": 1,
    "two": 2,
}

func GetValue(key string) (int, bool) {
    val, ok := constMap[key]
    return val, ok
}

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