接前面java写的递归例子,还是计算一个数递减相乘。

func test01(n int) int {
	result := 0
	if n <= 1 {
		return 1
	} else {
		result = test01(n-1) * n
		return result
	}
}

执行一个函数时,就创建一个新的受保护的独立控件(新的函数栈)

函数的局部变量时独立的,不会相互影响

递归必须向推出的递归条件逼近,否则就是无限递归。

当一个函数执行完毕,或者遇到return,就会返回,遵守谁调用,就将结果返回给谁,同时当函数执行完毕或者返回时,该函数本身也会被系统销毁。