Go · Avançado · Inglês · Técnico
constraint
Interface que restringe quais tipos podem ocupar um parâmetro de tipo, como any, comparable ou uma lista de tipos. Define as operações permitidas dentro da função genérica.
Onde usar
Sem constraint adequada, operações como + ou < não compilam dentro do corpo genérico. Constraints próprias são declaradas como interfaces com listas de tipos.
Em código
type Number interface {
~int | ~int64 | ~float64
}
func Soma[T Number](xs []T) T {
var s T
for _, x := range xs { s += x }
return s
}Exemplos
The compiler rejects + because the constraint is any.
O compilador rejeita o + porque a constraint é any.
We defined a Number constraint for ints and floats.
Definimos uma constraint Number para inteiros e floats.
Cuidado
Constraint com lista de tipos só vale como restrição; não dá para usá-la como tipo de variável comum.
Sinônimos
restrição de tipo
Origem
Do latim constringere, 'apertar junto'.