Rumah >pembangunan bahagian belakang >Golang >Bagaimana Fungsi Go Boleh Kurang Badan Namun Masih Berfungsi dengan Betul?
Membaca kod sumber math/floor.go, anda mungkin menghadapi pemerhatian yang membingungkan:
func Floor(x float64) float64 func floor(x float64) float64 { // ... }
Walaupun definisi fungsi untuk Lantai diisytiharkan, tiada badan fungsi yang jelas untuknya. Ini menimbulkan persoalan: adakah fungsi "tanpa badan" dibenarkan dalam sintaks Go?
Dalam alam Go, fungsi tanpa badan sememangnya merupakan binaan yang sah. Mereka berfungsi sebagai pemegang tempat untuk fungsi yang dilaksanakan dalam pemasangan. Khususnya, pelaksanaan pemasangan ini terdapat dalam fail floor_ARCH.s (contohnya, AMD64).
Seperti yang dinyatakan dalam spesifikasi Go:
Pengisytiharan fungsi mungkin meninggalkan kandungan. Pengisytiharan sedemikian menyediakan tandatangan untuk fungsi yang dilaksanakan di luar Go, seperti rutin pemasangan.
Jadi, sementara fungsi Floor nampaknya tidak mempunyai badan dalam definisi Go, ia sebenarnya dilaksanakan dalam pemasangan, menyediakan logik pelaksanaan yang diperlukan.
Atas ialah kandungan terperinci Bagaimana Fungsi Go Boleh Kurang Badan Namun Masih Berfungsi dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!