Junior — Middle
É possível usar estruturas como chaves em um array associativo ou mapa?
sobes.tech IA
Resposta da IA
Em Go, as chaves em um mapa podem ser apenas tipos que suportam a operação de comparação (o operador ==). Estruturas podem ser usadas como chaves se todos os seus campos forem comparáveis. Por exemplo, se uma estrutura contém apenas tipos básicos (int, string, etc.), ela pode ser usada como chave. No entanto, se a estrutura contém slices, mapas ou funções, ela não pode ser usada como chave.
Exemplo:
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] = "ponto"
fmt.Println(m[p]) // saída: ponto
}
Se a estrutura contém campos não comparáveis, o compilador gerará um erro.