Recursion is to call yourself in the process of running.
The syntax format is as follows:
func recursion() {
recursion() /* Function call itself */
}
func main() {
recursion()
}
Go
language supports recursion. But when we use recursion, developers need to set exit conditions, otherwise recursion will fall into an infinite loop.
Recursive functions are very useful for solving mathematical problems, such as calculating factorials, generating Fibonacci sequences and so on. The following example is passed through the The output of the above example is as follows: The following example is passed through the The output of the above example is as follows: 2.40.1. Factorial #
Go
recursive function instance factorial of the language:Example #
package main
import "fmt"
func Factorial(n uint64)(result uint64) {
if (n > 0) {
result = n * Factorial(n-1)
return result
}
return 1
}
func main() {
var i int = 15
fmt.Printf("The factorial of %d is %d\\n", i, Factorial(uint64(i)))
}
The factorial of 15 is 1307674368000
2.40.2. Fibonacci series #
Go
the recursive function of the language implements the Fibonacci sequence:Example #
package main
import "fmt"
func fibonacci(n int) int {
if n < 2 {
return n
}
return fibonacci(n-2) + fibonacci(n-1)
}
func main() {
var i int
for i = 0; i < 10; i++ {
fmt.Printf("%d\\t", fibonacci(i))
}
}
0 1 1 2 3 5 8 13 21 34