Go是否支持lambda表达式或任何类似的表达式?

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

推荐答案

Here is an example,仔细复制和粘贴:

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相关问答推荐

Golang regexpp:获取带有右括号的单词

Golang应用程序:所请求的资源上不存在HTTP-Control-Allow-Origin标头

创建服务时云运行触发器执行失败

在整个SQL事务中将使用上下文作为默认设置吗?

go中跨域自定义验证的问题

在运行时更改 Go lang slog 的日志(log)级别

从 ApiGateway 中的 lambda Go 返回 Json

是否可以在 hyperledger-chaincode 中使用 gRPC?如果可以,我如何避免在测试网络上调用时出错?

从 eBPF LRU 哈希映射中错误驱逐的元素

Golang crypto/rand 线程安全吗?

如何将 base64 编码的公钥转换为 crypto.PublicKey 或 ecdsa.PublicKey

使用 Go 解组 SOAP 消息

Get 请求在 Thunder 客户端/Postman 中返回数据,但在 Golang 代码中给出空白数据

Wire google Inject with multi return from provider 函数

从 Makefile 运行时权限被拒绝

如何使用特定的 Go 版本运行 govulncheck?

如何在 Golang 中使用具有相同名称或特定关键字的行或列重新排列/排序 CSV

如何使用golang操作很长的字符串以避免内存不足

无法识别同步错误.使用一次

AWS EKS 上的 Golang REST API 部署因 CrashLoopBackOff 而失败