Back to questions
МТС Digital
Junior — Middle
86
Можно ли использовать структуру данных как ключ в карте или хеш-таблице?
Companies where asked
Startribe
Answer from AI
sobes.tech AI
В Go структура данных может использоваться как ключ в карте (map), если она удовлетворяет требованиям сравнимости (comparable). Это значит, что все поля структуры должны быть типов, которые можно сравнивать с помощью оператора ==.
Например, структуры, содержащие только базовые типы (int, string, bool и т.п.) или другие сравнимые структуры, могут быть ключами. Однако структуры, содержащие срезы, карты или функции, не могут быть ключами, так как эти типы несравнимы.
Пример:
package main
import "fmt"
type Point struct {
X, Y int
}
func main() {
m := make(map[Point]string)
p := Point{X: 1, Y: 2}
m[p] = "точка"
fmt.Println(m[p]) // вывод: точка
}
Если структура содержит несравнимые поля, компилятор выдаст ошибку при попытке использовать её как ключ карты.