dongqian6554
2012-08-01 19:37
浏览 1.6k
已采纳

Go是否具有lambda表达式或类似内容?

Does Go support lambda expressions or anything similar?

I want to port a library from another language that uses lambda expressions (Ruby).

图片转代码服务由CSDN问答提供 功能建议

Go是否支持lambda表达式或类似的东西?

我要移植 一个使用lambda表达式(Ruby)的其他语言编写的库。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • dph19153 2012-08-01 19:44
    已采纳

    Here is an example, copied and pasted carefully:

    package main
    
    import fmt "fmt"
    
    type Stringy func() string
    
    func foo() string{
      return "Stringy function"
    }
    
    func takesAFunction(foo Stringy){
      fmt.Printf("takesAFunction: %v
    ", foo())
    }
    
    func returnsAFunction()Stringy{
      return func()string{
        fmt.Printf("Inner stringy function
    ");
        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
    "
      };
      fmt.Printf(baz());
    }
    
    评论
    解决 1 无用
    打赏 举报
  • 查看更多回答(6条)

相关推荐 更多相似问题