ExpertiDict

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

generics

/dʒəˈnɛɹ.ɪks/substantivo

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") compilam

Exemplos

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

Veja também

Todos os termos de Go