Rumah >pembangunan bahagian belakang >Golang >Adakah Go Menyokong Ekspresi Lambda?

Adakah Go Menyokong Ekspresi Lambda?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-19 10:40:08557semak imbas

Does Go Support Lambda Expressions?

Ekspresi Lambda dalam Go

S: Adakah anda tahu jika Go menyokong ungkapan lambda?

J: Ya, Pergi menyokong ungkapan lambda, juga dikenali sebagai fungsi tanpa nama. Ia adalah fungsi tanpa nama yang boleh ditakrifkan dan digunakan tanpa pengisytiharan rasmi. Dalam Go, ungkapan lambda ditakrifkan menggunakan sintaks:

func (parameters) (return type) { code }

Berikut ialah contoh:

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())
}

Dalam contoh ini, foo() ialah fungsi bernama standard dan fungsi yang tidak dinamakan yang diberikan kepada f dan baz ialah contoh ungkapan lambda.

Atas ialah kandungan terperinci Adakah Go Menyokong Ekspresi Lambda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn