Kurung Fungsi dalam Go: Memahami Notasi (Versi v)
Sebagai pendatang baharu Go, anda mungkin pernah menemui kod di mana tanda kurung mengikuti serta-merta selepas nama fungsi. Ini boleh mengelirukan, terutamanya apabila anda cuba membezakan antara fungsi dan kaedah.
Dalam Go, kurungan selepas nama fungsi menunjukkan bahawa fungsi itu sebenarnya kaedah. Mari kita mendalami maksud ini:
Kaedah: Fungsi yang Dilampirkan pada Jenis
Kaedah ialah fungsi yang beroperasi pada jenis data tertentu. Dalam contoh yang anda berikan:
func (v Version) MarshalJSON() ([]byte, error) { return json.Marshal(v.String()) }
Versi (v) sebelum fungsi MarshalJSON menunjukkan bahawa ia adalah kaedah yang dilampirkan pada jenis Versi. V mewakili penerima untuk kaedah, yang dalam kes ini ialah nilai jenis Versi.
Fungsi vs. Kaedah: Perbezaan dan Penggunaan
Fungsi dalam Go beroperasi secara bebas dan boleh dipanggil tanpa sebarang konteks khusus. Kaedah, sebaliknya, terikat pada jenis data yang ditakrifkan dan hanya boleh dipanggil pada tika jenis itu.
Sebagai contoh, berikut ialah fungsi yang mengira luas segi empat tepat :
func RectangleArea(length float64, width float64) float64 { return length * width }
Anda boleh memanggil fungsi ini seperti berikut:
area := RectangleArea(5.0, 10.0)
Walau bagaimanapun, jika anda mempunyai jenis Rectangle dengan medan untuk panjang dan lebar, anda boleh menentukan kaedah padanya untuk kira luas:
type Rectangle struct { Length float64 Width float64 } func (r *Rectangle) Area() float64 { return r.Length * r.Width }
Sekarang, anda boleh memanggil kaedah Kawasan pada mana-mana contoh Segiempat, seperti ini:
rectangle := Rectangle{5.0, 10.0} area := rectangle.Area()
Dengan memahami perbezaan antara fungsi dan kaedah, anda boleh dengan berkesan gunakan kurungan selepas nama fungsi untuk mencipta dan menggunakan kaedah dalam Go.
Atas ialah kandungan terperinci Apakah Maksud Notasi \'(Versi)\' Selepas Nama Fungsi dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!