Go语言递归函数

递归函数可以直接或者间接的调用自身

递归函数通常有相同的结构:一个 跳出条件和一个递归体。

跳出条件是看根据传入的参数判断是否需要停止递归,而递归体则是函数本身所做的一些处理。

Go语言递归函数_第1张图片

Go语言中的函数类型,函数也属于一种数据结构,我们可以通过type来定义它,它的类型就是所有拥有相同参数,相同的返回值的一种类型。

Go语言递归函数_第2张图片

匿名函数与闭包

闭包就是一个函数捕获了和它在同一作用域的其它常量和变量,这意味着当闭包被调用的时候,不管在程序什么地方调用,闭包能够使用这些常量或者变量,它不关心这些不活了的变量和常量是否已经超出了作用域,所以只有闭包还在使用它,这些变量就还会存在。Go语言里,所有匿名函数都是闭包,匿名函数是指不需要定义函数名的一种函数实现方式。

Go语言递归函数_第3张图片

Go语言递归函数_第4张图片

你可能感兴趣的:(go)