回答

收藏

Go 有 lambda 表达式或类似的东西吗?

技术问答 技术问答 800 人阅读 | 0 人回复 | 2023-09-11

Go 是否支持 lambda 表达式或类似的东西?
3 q0 K, i2 R* O/ h# d我想用另一种 lambda 表达式 (Ruby) 语言移植库。
' t9 q( c& S3 c7 K) \' L( g                                                               
+ L* u+ O. N8 B6 t) u& m% k& |    解决方案:                                                                , j7 [! a' t" r. ]5 k  u/ ^
                                                                [code]package mainimport fmt "fmt"type Stringy func() stringfunc 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()code]
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则