在这段代码中真正的T是什么?递归减速?
package main
import "fmt"
type T func() T
func main() {
var a T
a = func() T {
return a
}
fmt.Printf("%#v", a)
}
Run Code Online (Sandbox Code Playgroud)
http://play.golang.org/p/zt4CBXgrmI
编辑:我一直使用Go超过一年.
它看起来像一个函数类型.在声明中,T是一个无参数函数,它返回一个T,所以函数返回一个函数.这是类型声明.a属于这种类型T.
a是一个返回自身的函数,所以这些行基本上都是一样的:
fmt.Printf("%#v", a)
fmt.Printf("%#v", a())
fmt.Printf("%#v", a()()()()())
Run Code Online (Sandbox Code Playgroud)
我不能想到这个有用,但话又说回来,我在Go中远没有经验.