ExpertiDict

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

união de tipos

/u.niˈɐ̃w̃ d͡ʒi ˈt͡ʃi.pus/substantivo

Lista de tipos separados por barra vertical em uma interface de constraint, como int | string. Define exatamente quais tipos o parâmetro genérico aceita.

Onde usar

Usada para criar constraints numéricas ou textuais próprias. Pode combinar com til, como ~int | ~string, para incluir tipos definidos.

Em código

type IntOuTexto interface {
  int | string
}
func Mostrar[T IntOuTexto](x T) {
  fmt.Println(x)
}
// Mostrar(3) e Mostrar("a") ok

Exemplos

Declarei uma união de tipos com int e string para a constraint.

Não dá para guardar um valor numa variável cujo tipo é uma união de tipos.

Cuidado

Não funciona como union type de linguagens como TypeScript: a interface só serve como constraint, nunca como tipo de variável.

Sinônimos

type union

Veja também

Todos os termos de Go