Go por Exemplo: Recursividade

Go suporta funções recursivas. Aqui temos um exemplo clássico de fatorial.

package main
import "fmt"

Essa função fact chama a si mesma até atingir o caso base de fact(0).

func fact(n int) int {
    if n == 0 {
        return 1
    }
    return n * fact(n-1)
}
func main() {
    fmt.Println(fact(7))
}
$ go run recursividade.go
5040

Próximo exemplo: Ponteiros.