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