Junior — Middle
É possível usar uma estrutura de dados como chave em um mapa ou tabela hash?
sobes.tech IA
Resposta da IA
No Go, uma estrutura de dados pode ser usada como chave num mapa (mapa) se ela satisfizer os requisitos de comparabilidade (comparable). Isto significa que todos os campos da estrutura devem ser de tipos que podem ser comparados usando o operador ==.
Por exemplo, estruturas que contêm apenas tipos básicos (int, string, bool, etc.) ou outras estruturas comparáveis podem ser chaves. No entanto, estruturas que contêm slices, mapas ou funções não podem ser chaves, pois esses tipos não são comparáveis.
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 contiver campos não comparáveis, o compilador emitirá um erro ao tentar usá-la como chave do mapa.