这段代码中真正的 T 是什么?递归减速?package mainimport "fmt"type T func() Tfunc main() { var a T a = func() T { return a } fmt.Printf("%#v", a)}http://play.golang.org/p/zt4CBXgrmI编辑:我使用 Go 已经一年多了。
2 回答
泛舟湖上清波郎朗
TA贡献1818条经验 获得超3个赞
它看起来像一个函数类型。在声明中,T是一个返回一个T的无参数函数,所以一个返回一个函数的函数。那就是类型声明。a 是这种类型的 T。
a 是一个返回自身的函数,所以这些行基本上都是一样的:
fmt.Printf("%#v", a)
fmt.Printf("%#v", a())
fmt.Printf("%#v", a()()()()())
我想不出对此有什么好的用途,但话说回来,我在 Go 方面的经验还很远。
- 2 回答
- 0 关注
- 221 浏览
添加回答
举报
0/150
提交
取消