Go 这个代码中的T是什么
这段代码中真正的T是什么?递归减速Go 这个代码中的T是什么,go,Go,这段代码中真正的T是什么?递归减速 package main import "fmt" type T func() T func main() { var a T a = func() T { return a } fmt.Printf("%#v", a) } 编辑:我已经使用围棋一年多了。它看起来像一个游戏。在声明中,T是返回T的无参数函数,因此是返回函数的函数。这就是类型声明。a是这种类型的T a是一个返回自身的函数,因此这些行基本
package main
import "fmt"
type T func() T
func main() {
var a T
a = func() T {
return a
}
fmt.Printf("%#v", a)
}
编辑:我已经使用围棋一年多了。它看起来像一个游戏。在声明中,T是返回T的无参数函数,因此是返回函数的函数。这就是类型声明。a是这种类型的T
a是一个返回自身的函数,因此这些行基本上都执行相同的操作:
fmt.Printf("%#v", a)
fmt.Printf("%#v", a())
fmt.Printf("%#v", a()()()()())
我想不出它有什么好的用途,但话说回来,我在围棋方面还远远没有经验。GolezTrol是正确的<代码>T是类型
t
是t
类型的变量。
t
包含对函数的引用
我添加了返回int
而不是S
的函数类型S
,并比较了它的工作方式和返回的内容
a很简单,它会自动返回,但我的问题是T。T是这个函数类型的类型声明。T是一个返回T的函数。它有点像递归声明:o) 用例:这是Rob Pike在中使用的。需要注意的是,T不是一个返回自身的函数,它是一个返回T的函数。示例::)@kluig没错。正如我所写的,a是一个返回自身的函数。a的类型是T,这是一个返回T的函数。根据声明,不需要相同的T“返回自身”是它在a中的实现方式。