Go · Essencial · Português · Técnico
tipo definido
Novo tipo criado com 'type Nome T', que tem a mesma representação de T mas é distinto dele e pode ter seus próprios métodos.
Onde usar
'type UserID int' impede passar um OrderID no lugar de um UserID e permite métodos como String(). É o jeito de dar significado a tipos básicos.
Em código
type UserID int
func (u UserID) String() string {
return fmt.Sprintf("user-%d", int(u))
}
var id UserID = 7
fmt.Println(id)Exemplos
Cria um tipo definido para o ID, assim ninguém troca com o ID do pedido.
Esse tipo definido ganhou um método String para imprimir bonito.
Cuidado
Não é alias: um tipo definido não é intercambiável com o tipo original sem conversão explícita.
Sinônimos
defined type
Antônimos
alias de tipo