Rumah > pembangunan bahagian belakang > Golang > Apakah Maksud Notasi \'(Versi)\' Selepas Nama Fungsi dalam Go?

Apakah Maksud Notasi \'(Versi)\' Selepas Nama Fungsi dalam Go?

Mary-Kate Olsen
Lepaskan: 2024-10-30 00:59:02
asal
734 orang telah melayarinya

What Does the

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())
}
Salin selepas log masuk

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
}
Salin selepas log masuk

Anda boleh memanggil fungsi ini seperti berikut:

area := RectangleArea(5.0, 10.0)
Salin selepas log masuk

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
}
Salin selepas log masuk

Sekarang, anda boleh memanggil kaedah Kawasan pada mana-mana contoh Segiempat, seperti ini:

rectangle := Rectangle{5.0, 10.0}
area := rectangle.Area()
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan