ExpertiDict

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

inferência de tipos

/ĩ.feˈɾẽ.sja d͡ʒi ˈt͡ʃi.pus/substantivo

Capacidade do compilador de deduzir os argumentos de tipo de uma chamada genérica a partir dos argumentos passados, dispensando escrever Max[int](1, 2).

Onde usar

Faz o código genérico parecer comum no uso. Falha quando o tipo aparece só no retorno, caso em que é preciso informá-lo explicitamente.

Em código

func Dobro[T ~int | ~float64](x T) T {
  return x * 2
}
// Dobro(4)   -> T = int
// Dobro(2.5) -> T = float64
// Dobro[int](4) funciona, mas é redundante

Exemplos

Não precisei escrever o tipo, a inferência de tipos resolveu pelo argumento.

Aqui a inferência de tipos falha, então informo o tipo entre colchetes.

Cuidado

Quando o tipo só aparece no retorno, como em func Zero[T any]() T, não há o que inferir e é preciso escrever Zero[int]().

Sinônimos

type inference

Antônimos

instanciação explícita

Veja também

Todos os termos de Go