Rumah >pembangunan bahagian belakang >Golang >Penerima lwn Parameter dalam Kaedah Go: Apakah Perbezaan Sebenar?

Penerima lwn Parameter dalam Kaedah Go: Apakah Perbezaan Sebenar?

Linda Hamilton
Linda Hamiltonasal
2024-11-28 07:59:10287semak imbas

Receiver vs. Parameter in Go Methods: What's the Real Difference?

Kaedah Penerima vs. Parameter dalam Go

Dalam Go, memahami konsep penerima dan parameter adalah penting apabila menggunakan kaedah.

Tandatangan kaedah selalunya termasuk parameter yang diisytiharkan sebagai penerima kaedah. Penerima ini ialah kes khas parameter, walaupun namanya.

Apakah itu Penerima?

Penerima ialah ciri sintaks yang membenarkan kaedah dikaitkan dengan jenis tertentu. Dalam contoh yang diberikan:

func (p *Page) save() error

P *Halaman ialah penerima, menunjukkan bahawa kaedah simpan dilampirkan pada *Jenis Halaman.

Perbezaan Antara Penerima dan Parameter

Penerima bukanlah parameter tradisional dalam erti kata ia tidak perlu diluluskan secara eksplisit ke dalam kaedah. Sebaliknya, penerima disediakan secara automatik oleh pemanggil.

Sebagai contoh, untuk memanggil kaedah simpan, anda akan menulis:

p := &Page{"My Page", "This is my page"}
p.save()

Dalam kes ini, pembolehubah p *Halaman ialah penerima untuk kaedah simpan.

Gula Sintaksis

Penggunaan penerima hanyalah gula sintaksis. Ia membolehkan kaedah dilampirkan pada jenis dengan cara yang mudah. Walau bagaimanapun, anda boleh mencapai hasil yang sama dengan mengisytiharkan penerima sebagai parameter biasa:

func save(p *Page) error

Kedua-dua pengisytiharan adalah setara dan akan menghasilkan keputusan yang sama.

Untuk penjelasan lanjut, rujuk kepada disediakan jawapan untuk penjelasan tambahan.

Atas ialah kandungan terperinci Penerima lwn Parameter dalam Kaedah Go: Apakah Perbezaan Sebenar?. 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