Go · Intermediário · Inglês · Técnico
generics
Recurso do Go 1.18 que permite escrever funções e tipos parametrizados por tipo, como func Max[T cmp.Ordered](a, b T) T, sem duplicar código nem usar interface vazia.
Onde usar
Útil em utilitários de coleções, caches e estruturas de dados que funcionam igual para vários tipos. Em review, pergunte se uma interface comum não resolveria de forma mais simples.
Em código
func Max[T cmp.Ordered](a, b T) T {
if a > b {
return a
}
return b
}
// Max(3, 7) e Max("a", "b") compilamExemplos
Generics let us write one Map function for every slice type.
Generics nos deixam escrever uma função Map para qualquer tipo de slice.
Before generics we copied the same helper for each type.
Antes dos generics, copiávamos o mesmo helper para cada tipo.
Cuidado
Não use generics por reflexo; se o código só chama métodos, uma interface resolve e é mais legível.
Sinônimos
genéricos, programação genérica