Rumah > pembangunan bahagian belakang > Golang > Apakah yang dilakukan oleh Penerima dalam Pengisytiharan Fungsi Go?

Apakah yang dilakukan oleh Penerima dalam Pengisytiharan Fungsi Go?

DDD
Lepaskan: 2024-12-20 10:55:21
asal
198 orang telah melayarinya

What Does the Receiver in Go Function Declarations Do?

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) {
    ...
}
Salin selepas log masuk
func (s *GracefulServer) BlockingClose() bool {
    ...
}
Salin selepas log masuk

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:

  • Jenis Nilai (cth., pengendali): Pengubahsuaian kepada penerima dalam kaedah tidak menjejaskan tika asal.
  • Jenis Penunjuk (cth., *GracefulServer): Perubahan dibuat pada penerima kekal dalam contoh asal.

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan