Apa yang Ada di Dalam Kurungan dalam Pengisytiharan Fungsi Go?
Dalam Go, anda mungkin menghadapi pengisytiharan fungsi dengan sintaks seperti ini:
func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { ... }
func (s *GracefulServer) BlockingClose() bool { ... }
Apa yang ada di dalam kurungan, seperti (pengendali h) dan (s *GracefulServer), dikenali sebagai "penerima". Cara ia berfungsi dalam Go berbeza daripada bahasa lain.
Penerima sebagai Kelas
Jenis penerima, seperti kelas dalam pengaturcaraan berorientasikan objek, mewakili entiti mengenai kaedah yang digunakan. Sebagai contoh, jika A ialah kaedah dalam Kelas Orang, contoh Orang diperlukan untuk memanggil A.
Penerima sebagai Nilai atau Penunjuk
Dalam contoh di atas, h ialah jenis nilai manakala s ialah penunjuk. Perbezaan ini mempengaruhi cara kaedah beroperasi:
Bila Menggunakan Penunjuk
Gunakan penunjuk sebagai penerima apabila anda ingin mengubah suai keadaan penerima. Contohnya, jika anda memerlukan BlockingClose untuk mengubah keadaan GracefulServer, s *GracefulServer diperlukan.
Rujukan Spesifikasi:
Untuk butiran lanjut, rujuk kepada Go rasmi spesifikasi: https://golang.org/ref/spec#Method_sets
Atas ialah kandungan terperinci Apakah yang dilakukan oleh Penerima dalam Pengisytiharan Fungsi Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!