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中文網其他相關文章!