Recursion

Рекурсия (Recursion)|Recursion #

// Go поддерживает
// <a href="http://en.wikipedia.org/wiki/Recursion_(computer_science)"><em>рекурсивные функции</em></a>.
// Ниже приведено классическое вычисление факториала.

package main

import "fmt"

// Фукция `fact` вызывает себя по не достигнет
// `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 recursion.go 
5040