Go · Avançado · Português · Técnico
tipo subjacente
Tipo base de um tipo definido, como int em type Celsius int. Em constraints genéricas, ~int aceita qualquer tipo cujo tipo subjacente seja int.
Onde usar
Aparece quando uma função genérica com constraint int rejeita seu tipo Celsius: faltava o til. Com ~int, tipos definidos sobre int passam.
Em código
type Celsius float64
type Num interface{ ~float64 }
func Dobro[T Num](x T) T { return x * 2 }
var t = Dobro(Celsius(21.5)) // 43Exemplos
O tipo subjacente de Celsius é float64.
Coloquei o til na constraint para aceitar qualquer tipo com esse tipo subjacente.
Cuidado
Não confunda com alias: type A = int é o mesmo tipo, enquanto type A int cria um tipo distinto com o mesmo tipo subjacente.
Sinônimos
underlying type