Sobes.tech
Junior — Middle

Que tipos de programação genérica estão disponíveis na linguagem Go?

sobes.tech IA

Resposta da IA

Na linguagem Go, a programação genérica é implementada através de genéricos, que surgiram a partir da versão 1.18. Os principais tipos de genéricos em Go incluem:

  • Tipos parametrizados (tipos genéricos): funções e tipos podem aceitar parâmetros de tipos, permitindo escrever código universal.
  • Interfaces com restrições (restrições de tipos): estabelecem requisitos para os tipos de parâmetros, por exemplo, que o tipo suporte certos métodos ou pertença a um conjunto específico de tipos.

Exemplo de uma função genérica para um slice:

func IndexOf[T comparable](slice []T, val T) int {
    for i, v := range slice {
        if v == val {
            return i
        }
    }
    return -1
}

Aqui, T é um parâmetro de tipo restrito pela interface comparable, o que permite usar o operador ==. Essa função é universal para quaisquer tipos comparáveis.

Assim, o Go suporta genéricos através da parametrização de tipos e restrições, o que aumenta a flexibilidade e a reutilização do código.