Rumah >pembangunan bahagian belakang >Golang >Bagaimana Pergi Mencapai Fungsi Ungkapan Lambda Tanpa Sokongan Eksplisit?
Ungkapan Lambda dalam Go: Penjelasan Terperinci
Ekspresi Lambda, ciri yang mudah digunakan dalam banyak bahasa moden, membolehkan pembangun mentakrifkan fungsi tanpa nama pada lalat itu. Walaupun Go tidak menyokong ungkapan lambda secara eksplisit, ia menyediakan binaan serupa yang menawarkan kefungsian setanding: fungsi tanpa nama.
Dalam Go, fungsi tanpa nama diisytiharkan menggunakan kata kunci func diikuti dengan fungsi parameter dan badan. Tidak seperti fungsi yang dinamakan, fungsi tanpa nama tidak mempunyai nama dan biasanya ditakrifkan dan digunakan sebaris dalam kod lain. Berikut ialah contoh:
func main() { // Define an anonymous function that returns a string stringy := func() string { return "Stringy function" } // Pass the anonymous function as an argument to another function takesAFunction(stringy) } func takesAFunction(foo func() string) { fmt.Printf("takesAFunction: %v\n", foo()) }
Dalam contoh ini, kami mentakrifkan fungsi tanpa nama bernama stringy yang mengembalikan rentetan. Kami kemudian menghantar stringy sebagai hujah kepada fungsi takesAFunction(), yang mencetak hasil panggilan stringy.
Fungsi tanpa nama juga boleh digunakan untuk mengembalikan fungsi. Berikut ialah contoh:
func main() { // Define an anonymous function that returns a string stringy := func() string { return "bar" // have to return a string to be stringy } // Return the anonymous function as the result of another function returnsAFunction()() } func returnsAFunction() func() string { return func() string { fmt.Printf("Inner stringy function\n") return "bar" } }
Dalam contoh ini, fungsi returnsAFunction() mengembalikan fungsi tanpa nama yang mengembalikan rentetan. Kami kemudian memanggil fungsi tanpa nama yang dikembalikan, yang mencetak mesej dan mengembalikan rentetan.
Atas ialah kandungan terperinci Bagaimana Pergi Mencapai Fungsi Ungkapan Lambda Tanpa Sokongan Eksplisit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!