Fungsi sebagai Parameter dalam Go
Di Java, adalah mungkin untuk menghantar fungsi sebagai parameter, walaupun ia mungkin melibatkan beberapa kerumitan dalam melaksanakan kelas dalaman tanpa nama. Tetapi adakah Go menawarkan mekanisme yang serupa untuk memudahkan proses ini?
Jenis Fungsi Go
Ya, Go menyokong menghantar fungsi sebagai parameter menggunakan jenis fungsi. Jenis fungsi mentakrifkan tandatangan fungsi, menentukan jenis parameternya dan nilai pulangan. Sebagai contoh, kita boleh mentakrifkan penukaran jenis fungsi yang mengambil hujah integer dan mengembalikan rentetan:
type convert func(int) string
Melaksanakan Jenis Fungsi
Kita boleh melaksanakan fungsi konkrit yang memenuhi jenis fungsi tukar:
func value(x int) string { return fmt.Sprintf("%v", x) }
Meluluskan Fungsi sebagai Parameter
Dengan jenis fungsi yang ditakrifkan dan dilaksanakan, kita boleh menghantar fungsi sebagai parameter kepada fungsi lain. Sebagai contoh, fungsi quote123 berikut mengambil fungsi penukaran jenis dan menggunakannya pada nombor 123:
func quote123(fn convert) string { return fmt.Sprintf("%q", fn(123)) }
Contoh
Dalam contoh kod yang disediakan, kami menunjukkan cara menggunakan jenis fungsi tukar dan lulus fungsi sebagai parameter:
Ini menunjukkan fleksibiliti dan ekspresif jenis fungsi Go, membolehkan untuk penciptaan kod boleh gubah dan boleh guna semula.
Atas ialah kandungan terperinci Bolehkah Go Pass Berfungsi sebagai Parameter Seperti Java, dan Bagaimana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!