ExpertiDict

Go · Essencial · Português · Técnico

tipo definido

/ˈʧi.pu de.fi.ˈni.du/substantivo

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

Veja também

Todos os termos de Go