39
A
回答
38
Here is an example,複製和粘貼小心:
package main
import fmt "fmt"
type Stringy func() string
func foo() string{
return "Stringy function"
}
func takesAFunction(foo Stringy){
fmt.Printf("takesAFunction: %v\n", foo())
}
func returnsAFunction()Stringy{
return func()string{
fmt.Printf("Inner stringy function\n");
return "bar" // have to return a string to be stringy
}
}
func main(){
takesAFunction(foo);
var f Stringy = returnsAFunction();
f();
var baz Stringy = func()string{
return "anonymous stringy\n"
};
fmt.Printf(baz());
}
24
Lambda表達式也被稱爲函數文本。 Go完全支持他們。
看到的語言規範: http://golang.org/ref/spec#Function_literals
看到一個代碼步行路程,例子和說明: http://golang.org/doc/codewalk/functions/
1
是
在計算機編程,一個匿名函數或lambda抽象(func )是一個不綁定到標識符的函數定義,並且Go支持可以形成閉包的匿名函數。當你想定義一個內聯函數而不必命名它時,匿名函數很有用。
package main
import "fmt"
func intSeq() func() int {
i := 0
return func() int {
i += 1
return i
}
}
func main() {
nextInt := intSeq()
fmt.Println(nextInt())
fmt.Println(nextInt())
fmt.Println(nextInt())
newInts := intSeq()
fmt.Println(newInts())
}
功能intSeq返回另一個功能,這是我們在intSeq的身體匿名定義。返回的函數在變量i上關閉以形成閉包。
Output
$ go run closures.go
1
2
3
1
相關問題
- 1. Python中有沒有類似「void lambda」的東西?
- 2. Appengine與Go:是否有一個http.Handle prehook或類似的東西?
- 3. 有沒有像onrotate()或類似的功能在Android的東西?
- 4. 類似的東西沒有使用JavaScript?
- 5. 在vb.net中使用類似www。*或東西的表達式
- 6. 正則表達式的東西或沒有
- 7. 有任何程序使用.DS_Store(或類似的東西)的東西有用嗎?
- 8. jQuery的儀表,或類似的東西
- 9. RAID5沒有安裝(或類似的東西..)
- 10. Java中有沒有類似Internal類的東西?
- 11. 有沒有類似sessionStorage的東西,但有多維鍵?
- 12. 該matchis東西或沒有
- 13. 有沒有類似Chrome的Firefox插件的fileSystem API的東西?
- 14. 有沒有類似於.NET中的Qt :: QueuedConnection的東西?
- 15. 火花List有沒有類似mx list中的itemsChangeEffect的東西?
- 16. Kohana中有沒有類似CakePHP的requestAction的東西?
- 17. Objective-C中有沒有和JOptionPane類似的東西?
- 18. Android Xamarin中有沒有類似於UIScrollVIew的東西?
- 19. 在Rails 3.1上有沒有類似stylesheet_url的東西?
- 20. vim中有沒有類似「TeX輸入法」的東西?
- 21. Java世界中有沒有類似於WPF和MVVM的東西?
- 22. 有沒有類似Linq to Entities in PHP的東西?
- 23. WPF - 有沒有類似於PathCompactPath的東西?
- 24. jQuery中有沒有類似於Dojo GFX的東西?
- 25. NSUserDefaults/SharedPreferences我們有沒有類似於TypeScript的東西
- 26. buddypress中有沒有類似bp_get_member_id的東西?
- 27. AngularJS中有沒有類似於「KO.mapping.fromJS」的東西?
- 28. 有沒有類似於mongo.model()的東西;在DynamoDB中...?
- 29. 在Action Script 3中有沒有類似printf的東西?
- 30. 有沒有類似於Maven Cargo但AppAssembler的東西?
你爲什麼這麼說?複製和粘貼仔細? :) – loyalflow 2012-08-01 19:53:42
,因爲我複製了代碼,並且想要說清楚:) – perreal 2012-08-01 19:55:31
我很想看到比複製代碼更多的問題。首先,你可以添加一個「是」/「否」/「部分」等等。然後描述一下你的代碼實際上做了什麼。 – Kissaki 2012-08-02 08:55:11