我来自 JavaScript,它具有一流的函数支持。例如,您可以:
- 将一个函数作为参数传递给另一个函数
- 从函数返回一个函数。
有人能给我一个例子来说明如何在 Go 中做到这一点吗?
Go语言和函数式编程 http://livingcode.org/2009/11/13/go-language-and-functional-programming.html可能有帮助。来自这篇博文:
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());
}
作者是博客所有者:Dethe Elza(不是我)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)