Junior — Middle
Que tipos de dados podem atuar como chave num container map?
sobes.tech IA
Resposta da IA
Em Go, a chave num mapa só pode ser de tipos de dados que sejam comparáveis (comparáveis). Isso significa que deve estar definido o operador == para a chave.
Tipos de chaves adequados:
- Valores booleanos (
bool) - Números (
int,float64,uint8, etc.) - Strings (
string) - Ponteiros
- Canais
- Interfaces, se o tipo dinâmico for comparável
- Estruturas, se todos os seus campos forem comparáveis
Não é possível usar como chave:
- Slices (
slice) - Mapas (
map) - Funções
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"
Se tentar usar um tipo não comparável como chave, o compilador gerará um erro.