首頁 >後端開發 >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