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!