ExpertiDict

Go · Intermediário · Português · Técnico

tipo genérico

/ˈt͡ʃi.pu ʒeˈnɛ.ɾi.ku/substantivo

Tipo declarado com parâmetros de tipo, como type Pilha[T any] struct. Cada uso, como Pilha[int], instancia uma versão concreta com métodos que enxergam T.

Onde usar

Permite estruturas de dados reutilizáveis, como pilha, fila e cache, sem perder a checagem de tipos. Os métodos repetem o parâmetro no receiver, sem declarar outros novos.

Em código

type Pilha[T any] struct{ itens []T }

func (p *Pilha[T]) Push(x T) {
  p.itens = append(p.itens, x)
}

// var p Pilha[int]; p.Push(7)

Exemplos

Criei um tipo genérico Pilha[T] e reaproveitei em três pacotes.

No receiver do tipo genérico, repita o parâmetro entre colchetes.

Cuidado

Métodos de tipo genérico não podem ter parâmetros de tipo próprios; só usam os do receiver.

Sinônimos

generic type

Veja também

Todos os termos de Go