Sobes.tech
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"