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

Go 支持 Lambda 表达式吗?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-19 10:40:08557浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn