ExpertiDict

Go · Avançado · Inglês · Técnico

constraint

/kənˈstɹeɪnt/substantivo

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'.

Veja também

Todos os termos de Go