Sobes.tech
Junior — Middle

Que métodos e ferramentas conhece para implementar a programação genérica nos seus projetos?

sobes.tech IA

Resposta da IA

No Go, para implementar programação genérica, usam-se genéricos, que surgiram a partir da versão Go 1.18.

Ferramentas e métodos principais:

  • Tipos parametrizados (genéricos) — permitem escrever funções, estruturas e métodos que funcionam com diferentes tipos de dados, sem duplicar código.
  • Interfaces com restrições (constraints) — estabelecem requisitos para os tipos que podem ser usados em genéricos.

Exemplo de função com genéricos:

package main
import "fmt"

func SumIntsOrFloats[T int | float64](slice []T) T {
    var sum T
    for _, v := range slice {
        sum += v
    }
    return sum
}

func main() {
    ints := []int{1, 2, 3}
    floats := []float64{1.1, 2.2, 3.3}
    fmt.Println(SumIntsOrFloats(ints))   // 6
    fmt.Println(SumIntsOrFloats(floats)) // 6.6
}

Antes do surgimento dos genéricos, usava-se frequentemente a interface{} e a conversão de tipos, mas isso é menos seguro e menos eficiente.