Introdução

Go é uma linguagem tipada, o que significa que cada variável e valor em seu programa tem algum tipo específico.

Quando escrevemos funções, precisamos especificar o tipo de seus parâmetros no que é chamado de assinatura da função.


func Somar(x, y float32) float32 {
    return x + y
}
                        

Tendo em vista a função acima, imagina como seria repetitivo redeclarar a mesma função para todos os tipos numéricos disponíveis.

E se quisessemos declarar uma função que especifica um grupo de tipos possíveis para um argumento, e deixarmos o compilador "converter" esse tipo genérico para o tipo que usarmos na chamada da função?

Isso é possível usando os generics, que veremos em mais detalhes nas próximas páginas.

introduction.go