Rumah >pembangunan bahagian belakang >Golang >Bagaimana Fungsi Go Boleh Kurang Badan Namun Masih Berfungsi dengan Betul?

Bagaimana Fungsi Go Boleh Kurang Badan Namun Masih Berfungsi dengan Betul?

Susan Sarandon
Susan Sarandonasal
2024-12-20 05:02:18919semak imbas

How Can a Go Function Lack a Body Yet Still Function Correctly?

Pelaksanaan Fungsi dalam Himpunan Go

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn