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