Sobes.tech
Junior — Middle

Que tipos de dados são adequados para uso como chaves numa estrutura Map?

sobes.tech IA

Resposta da IA

No Go, as chaves numa estrutura map podem ser apenas tipos que suportem a operação de comparação de igualdade (== e !=). Isto deve-se ao facto de que, para procurar um valor por chave, é necessário comparar as chaves.

Tipos de chaves adequados:

  • Tipos simples: int, float64, string, bool, etc.
  • Ponteiros
  • Estruturas, se todos os seus campos forem comparáveis
  • Arrays, se os seus elementos forem comparáveis

Não é possível usar como chaves:

  • Slices (slice)
  • Maps (map)
  • Funções

Exemplo de uso:

m := make(map[string]int)
m["apple"] = 5
m["banana"] = 3

fmt.Println(m["apple"]) // 5

Se tentar usar um slice como chave, o compilador irá gerar um erro.