ExpertiDict

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

tipo subjacente

/ˈt͡ʃi.pu sub.ʒaˈsẽ.t͡ʃi/substantivo

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)) // 43

Exemplos

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

Veja também

Todos os termos de Go