首页 > 后端开发 > Golang > Go 支持 Lambda 表达式吗?

Go 支持 Lambda 表达式吗?

Mary-Kate Olsen
发布: 2024-12-19 10:40:08
原创
542 人浏览过

Does Go Support Lambda Expressions?

Go 中的 Lambda 表达式

问:你知道 Go 是否支持 lambda 表达式吗?

A:是的,Go支持 lambda 表达式,也称为匿名函数。它们是匿名函数,无需正式声明即可定义和使用。在 Go 中,lambda 表达式使用以下语法定义:

func (parameters) (return type) { code }
登录后复制

这里有一个示例:

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())
}
登录后复制

在此示例中,foo() 是一个标准的命名函数,而未命名函数分配给 f 和 baz 是 lambda 表达式的示例。

以上是Go 支持 Lambda 表达式吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板