Sobes.tech
Junior — Middle

Какви типове данни са допустими като ключове за структурата map?

sobes.tech AI

Отговор от AI

В Go ключовете за map могат да бъдат само тези типове данни, които поддържат операцията за сравнение (сравними). Това означава, че ключовете могат да бъдат:

  • Булеви стойности (bool)
  • Числа (int, float, complex и т.н.)
  • Стриймове (string)
  • Указатели
  • Интерфейси, ако динамичният тип поддържа сравнение
  • Структури, ако всички техни полета са сравними

Не могат да се използват срезове, карти, функции и други несравними типове като ключове, тъй като те не поддържат оператора ==.

Пример:

m := make(map[string]int)
m["key"] = 42

// Структура с сравними полета
type Point struct {
    X, Y int
}

m2 := make(map[Point]string)
m2[Point{1,2}] = "Точка"