這段代碼中真正的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
編輯:我一直在使用轉到了一年多的時間。
這段代碼中真正的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
編輯:我一直在使用轉到了一年多的時間。
它看起來像一個function type。在聲明中,T是一個返回T的無參數函數,所以返回一個函數的函數。這是類型聲明。一個是這種類型T.
一個是返回自身的函數,所以這些線路基本上都做同樣的:
fmt.Printf("%#v", a)
fmt.Printf("%#v", a())
fmt.Printf("%#v", a()()()()())
我想不出很好的利用這個的,但話又說回來,我在Go方面經驗不足。
GolezTrol是正確的。 T
是類型。 t
是T
類型的變量。 t
援引功能
我添加類型S
的函數,返回int
,而不是S
相比它的工作原理以及它返回
一個是容易的,它返回自身,但我的問題是T. –
T是此函數類型的類型聲明。 T是一個返回T的函數。它有點像遞歸聲明。 :o) – GolezTrol
用例:Rob Pike在[他在Go中的詞彙掃描](http://www.youtube.com/watch?v=HxaD_trXwRE&feature=player_detailpage#t=846)中使用。 – nemo