Go · Intermediário · Inglês · Técnico
comparable
Constraint predefinida satisfeita por tipos que aceitam == e !=, como números, strings, ponteiros e structs de campos comparáveis. É o requisito de chaves de map genérico.
Onde usar
Aparece em funções genéricas que comparam valores ou usam chaves em map[K]V. Slices, maps e funções não são comparáveis e não satisfazem a constraint.
Em código
func Indice[T comparable](xs []T, v T) int {
for i, x := range xs {
if x == v { return i }
}
return -1
}Exemplos
The key type must be comparable.
O tipo da chave precisa ser comparable.
A slice is not comparable, so it can't be a map key.
Uma slice não é comparable, então não pode ser chave de map.
Cuidado
Interfaces satisfazem comparable desde o Go 1.20, mas a comparação pode dar panic em tempo de execução se o valor dinâmico não for comparável.
Sinônimos
comparável