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

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

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

回答:

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

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());

}

以上是 Go是否具有lambda表达式或类似内容? 的全部内容, 来源链接: utcz.com/qa/427868.html

回到顶部