栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Go中的函数内定义递归函数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Go中的函数内定义递归函数

Function2
如果它在声明它的行中,则无法访问它的内部。原因是您不是在指 函数, 而是指 变量 (类型是函数),并且只有在声明后才能访问它。

引用规格:声明和范围:

在函数内部声明的常量或变量标识符的范围始于ConstSpec或VarSpec的末尾(对于简短变量声明为ShortVarDecl),并在最里面的包含块的末尾结束。

在您的示例中

Function2
是一个变量声明,而VarSpec是:

Function2 := func(m int) int {    if m <= a {        return a    }    return Function2(m-1)}

而且,正如语言规范所描述的引号形式一样,变量标识符

Function2
将仅在声明之后的范围内,因此您不能在声明本身内引用它。
首先声明
Function2
变量,以便您可以从函数文字中引用它:

func Function1(n int) int {    a := 10    var Function2 func(m int) int    Function2 = func(m int) int {        if m <= a { return a        }        return Function2(m - 1)    }    return Function2(n)}

在Go Playground上尝试一下。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/366787.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号