Penuding dan Penyesuai Fungsi dalam Go: Melepasi Fungsi sebagai Parameter
Soalan yang dikemukakan berkisar tentang menghantar fungsi sewenang-wenang sebagai parameter dalam Go, terutamanya keupayaan untuk menukar fungsi jenis tertentu kepada jenis generik yang boleh diterima oleh penghias fungsi.
Pada mulanya, fungsi penghias diperkenalkan yang boleh membungkus fungsi dengan satu parameter dan satu nilai pulangan. Ia menerima fungsi antara muka jenis func(antara muka{}){} sebagai hujahnya, yang membolehkannya mengendalikan fungsi yang beroperasi pada jenis antara muka. Walau bagaimanapun, persoalan timbul tentang cara menyesuaikan fungsi dengan jenis khusus lain, seperti rentetan func(string), agar serasi dengan fungsi penghias tanpa menggunakan fungsi tanpa nama.
Jawapan kepada soalan ini terletak pada had sistem jenis Go. Melepasi parameter antara muka jenis{} tidak semestinya bermakna fungsi menerima jenis sewenang-wenangnya. Sebaliknya, ia bergantung pada pelaksanaan khusus fungsi itu sendiri. Sebagai contoh, fungsi yang menerima struct akan menerima ahli individunya, manakala fungsi yang mengambil antara muka yang mengandungi struct akan menerima maklumat jenis dan penunjuk kepadanya.
Oleh itu, tanpa menggunakan generik, satu-satunya cara untuk mencapai kebolehsuaian ini adalah melalui penggunaan fungsi penyesuai. Fungsi penyesuai bertindak sebagai perantara, menukar jenis fungsi tertentu kepada jenis antara muka generik yang diperlukan oleh fungsi penghias.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyesuaikan Fungsi Go bagi Jenis Tertentu kepada Fungsi Penghias Generik Tanpa Fungsi Tanpa Nama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!