Go · Intermediário · Português · Técnico
tipo genérico
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