Go · Avançado · Português · Técnico
inferência de tipos
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 é redundanteExemplos
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