猿问

这段代码中的 T 是什么

这段代码中真正的 T 是什么?递归减速?


package main


import "fmt"


type T func() T


func main() {

    var a T

    a = func() T {

        return a

    }


    fmt.Printf("%#v", a)

}

http://play.golang.org/p/zt4CBXgrmI


编辑:我使用 Go 已经一年多了。


慕丝7291255
浏览 222回答 2
2回答

泛舟湖上清波郎朗

它看起来像一个函数类型。在声明中,T是一个返回一个T的无参数函数,所以一个返回一个函数的函数。那就是类型声明。a 是这种类型的 T。a 是一个返回自身的函数,所以这些行基本上都是一样的:fmt.Printf("%#v", a)fmt.Printf("%#v", a())fmt.Printf("%#v", a()()()()())我想不出对此有什么好的用途,但话说回来,我在 Go 方面的经验还很远。
随时随地看视频慕课网APP

相关分类

Go
我要回答