Junior — Middle
Que tipos de dados são permitidos como chaves para a estrutura de mapa?
sobes.tech IA
Resposta da IA
No Go, as chaves para um mapa podem ser apenas tipos de dados que suportam a operação de comparação (comparáveis). Isso significa que as chaves podem ser:
- Valores booleanos (bool)
- Números (int, float, complex, etc.)
- Strings (string)
- Ponteiros
- Interfaces, se o tipo dinâmico suportar comparação
- Estruturas, se todos os seus campos forem comparáveis
Não é possível usar slices, mapas, funções ou outros tipos não comparáveis como chaves, pois eles não suportam o operador ==.
Exemplo:
m := make(map[string]int)
m["key"] = 42
// Estrutura com campos comparáveis
type Point struct {
X, Y int
}
m2 := make(map[Point]string)
m2[Point{1,2}] = "Um ponto"