Go 支持函数内部嵌套结构,但除了 lambda 之外没有嵌套函数,这是否意味着无法在函数内部定义嵌套类?func f() { // nested struct Cls inside f type Cls struct { ... } // try bounding foo to Cls but fail func (c *Cls) foo() { ... }}因此,类在功能内部被削弱感觉有点奇怪。任何提示?
1 回答
30秒到达战场
TA贡献1828条经验 获得超6个赞
其实,如果你想声明的功能也不要紧用或不用在去嵌套函数不允许:接收器。
虽然你可以使用函数文字来实现这样的事情:
func f() {
foo := func(s string) {
fmt.Println(s)
}
foo("Hello World!")
}
在这里,我们创建了一个foo具有函数类型的变量,并将其声明在另一个函数中f。调用“外部”函数f输出:"Hello World!"正如预期的那样。
在Go Playground上试试。
- 1 回答
- 0 关注
- 154 浏览
添加回答
举报
0/150
提交
取消