Sobes.tech
Junior — Middle

Kako odrediti koju vrednost možete koristiti kao ključ u strukturi podataka Map?

sobes.tech АИ

Одговор од АИ

В Go ключом для map может быть любой тип, который поддерживает сравнение с помощью оператора ==. Это значит, что ключ должен быть сравнимым (comparable).

Что можно использовать в качестве ключа:

  • Примитивные типы: строки, числа, булевы значения.
  • Указатели.
  • Структуры, если все их поля сравнимы.

Что нельзя использовать:

  • Срезы (slice), карты (map), функции, так как они не сравнимы.

Пример:

m := make(map[string]int) // строка — валидный ключ
m["key"] = 42

// Структура с сравнимыми полями
type Point struct {
    X, Y int
}
var points = make(map[Point]string)
points[Point{1, 2}] = "A"

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