Fungsi Currying dalam Go Lang
Dalam pengaturcaraan berfungsi, fungsi currying ialah teknik yang membolehkan anda memecahkan fungsi dengan berbilang parameter menjadi satu siri fungsi dengan parameter yang lebih sedikit. Ini selalunya boleh memudahkan pengekodan dan menjadikannya lebih mudah untuk membuat alasan tentang fungsi anda.
Aplikasi Separa dalam Go
Aplikasi separa ialah bentuk kari tertentu yang digunakan untuk fungsi dengan subset parameternya, mengembalikan fungsi baharu yang boleh dipanggil dengan parameter yang tinggal. Go tidak mempunyai sokongan terbina dalam untuk aplikasi separa, tetapi anda boleh melaksanakannya secara manual dengan mengembalikan a闭包 dan memberikan argumen awal sebagai pembolehubah setempat.
Go's Function Currying
Untuk melaksanakan fungsi kari dalam Go, anda boleh mencipta fungsi yang mengambil sebagai parameter pertama nilai awal yang akan terikat pada penutupan dicipta dalam fungsi. Penutupan ini kemudiannya boleh mengambil baki parameter fungsi asal dan mengembalikan hasil gabungan.
Sebagai contoh, coretan kod berikut menunjukkan cara melaksanakan kari untuk fungsi "tambah":
package main import "fmt" func main() { mkAdd := func(a int) func(b int) int { return func(b int) int { return a + b } } add3 := mkAdd(3) fmt.Println(add3(5)) // Output: 8 }
Dalam contoh ini, fungsi mkAdd mengambil integer a sebagai parameternya dan mengembalikan penutupan yang mengambil integer b sebagai parameternya. Penutupan menambah a dan b bersama-sama dan mengembalikan hasilnya. Pembolehubah add3 diberikan penutupan yang dibuat dengan memanggil mkAdd(3), yang bermaksud add3 akan menambah 3 pada mana-mana nombor yang dihantar kepadanya.
Kesimpulan
Dengan pemahaman konsep aplikasi separa dan kari fungsi, anda boleh mencipta fungsi yang fleksibel dan boleh digunakan semula dalam Go. Ingat bahawa walaupun Go tidak mempunyai sokongan terbina dalam untuk aplikasi separa, ia boleh dilaksanakan secara manual untuk mencapai kefungsian yang serupa.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Melaksanakan Fungsi Kari dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!