Go 中的 Lambda 表達式
與許多其他程式語言不同,Go 的語法中沒有 lambda 表達式。但是,它確實提供了一種實現類似功能的替代機制。
與 Lambda 表達式類似的函數
Go 的匿名函數可以取代 lambda 表達式。匿名函數是沒有特定名稱的函數,通常用作內聯表達式。其語法為:
func(parameters) return_type { // function body }
例如,定義一個傳回字串的匿名函數:
func() string { return "Stringy function" }
實務上的使用
匿名函數可以分配給變數或作為參數傳遞給其他函數,從而允許靈活的程式碼重用和自訂。考慮以下 Go 程式碼:
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" // must return a string to be stringy } } func main() { takesAFunction(foo) f := returnsAFunction() f() baz := func() string { return "anonymous stringy\n" } fmt.Printf(baz()) }
在此範例中,我們定義一個傳回字串並將其指派給變數 f 的匿名函數。我們還創建一個匿名函數,然後將其指派給變數 baz。 f 和 baz 都可以像命名函數一樣被呼叫。
以上是Go 如何在沒有明確 Lambda 語法的情況下實作 Lambda 表達式功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!