一尘不染

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

go

Go是否支持lambda表达式或类似内容?

我想从使用lambda表达式(Ruby)的另一种语言移植库。


阅读 807

收藏
2020-07-02

共1个答案

一尘不染

这是一个示例,请仔细复制并粘贴:

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());
}
2020-07-02