Rumah > pembangunan bahagian belakang > Golang > Mari kita bincangkan tentang definisi dan penggunaan kaedah di Golang

Mari kita bincangkan tentang definisi dan penggunaan kaedah di Golang

PHPz
Lepaskan: 2023-04-14 13:51:00
asal
580 orang telah melayarinya

Bahasa Golang ialah bahasa pengaturcaraan yang sangat popular sejak beberapa tahun kebelakangan ini, kesederhanaan, kecekapan dan kebolehbacaan yang tinggi amat digemari oleh pengaturcara. Di Golang, mentakrifkan kaedah adalah bahagian yang sangat penting Untuk menulis program yang cekap, definisi kaedah mestilah betul, ringkas, dan mudah difahami.

  1. Definisi kaedah

Kaedah dalam Golang dilaksanakan mengikut fungsi, tetapi sintaksnya mempunyai beberapa perbezaan. Di Golang, kaedah ditakrifkan sebagai fungsi dengan parameter penerima khas. Penerima boleh dari sebarang jenis, tetapi mesti diisytiharkan sebelum nama fungsi. Berikut ialah contoh definisi kaedah:

package main

import "fmt"

type MyInt int

func (i MyInt) Print() {
    fmt.Println(i)
}

func main() {
    var i MyInt = 100
    i.Print()
}
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan jenis MyInt dan kaedah cetakan. Kaedah ini mengeluarkan penerima i, membuat instantiate jenis MyInt dalam fungsi utama, dan mengeluarkannya melalui kaedah i.Print().

  1. Perkaitan antara jenis dan kaedah

Di Golang, perkaitan antara kaedah dan jenis dicapai melalui penerima. Dalam kod di atas, kami menggunakan jenis MyInt sebagai penerima kaedah, yang mengaitkan kaedah dengan jenis MyInt. Ambil perhatian bahawa penerima mesti diisytiharkan menggunakan nama jenis dan bukannya alias. Contohnya:

type MyInt int
Salin selepas log masuk

Jika kita menukar MyInt kepada i, takrifan penerima akan menjadi salah:

type i int        // 错误的示例

func (i MyInt) Print() {
    fmt.Println(i)
}
Salin selepas log masuk
  1. Penerima Penunjuk

Di Golang, sebagai tambahan kepada penerima nilai, anda juga boleh menggunakan penerima penunjuk untuk menentukan kaedah. Penerima penunjuk boleh mengubah suai perkara yang ditunjuk oleh penerima, dengan itu mengubah nilainya. Berikut ialah contoh mentakrifkan kaedah menggunakan penerima penunjuk:

package main

import "fmt"

type MyInt int

func (i *MyInt) Add(n MyInt) {
    *i += n
}

func main() {
    var i MyInt = 100
    i.Add(50)
    fmt.Println(i)
}
Salin selepas log masuk

Dalam kod di atas, kami telah menentukan kaedah Tambah yang menggunakan penerima penunjuk untuk mengubah suai nilai jenis MyInt. Dalam fungsi utama, kami membuat instantiate jenis MyInt dan menambah 50 pada nilainya. Oleh kerana kami menggunakan penerima penunjuk, nilai boleh diubah suai di dalam kaedah dan hasil output ialah 150.

  1. Mana satu lebih baik, penerima nilai atau penerima penunjuk?

Dalam aplikasi praktikal, kita harus memilih penerima nilai atau penerima penunjuk mengikut situasi sebenar. Penerima penunjuk harus digunakan apabila kita perlu mengubah suai nilai penerima. Apabila kita hanya perlu membaca nilai penerima dan tidak perlu mengubahnya, kita harus menggunakan penerima nilai. Penerima nilai biasanya digunakan apabila objek penerima tidak perlu diubah suai, manakala penerima penunjuk digunakan apabila objek penerima perlu diubah suai.

Ringkasan:

Melalui penjelasan di atas, saya percaya semua orang telah memahami definisi dan penggunaan kaedah di Golang. Sebagai ciri penting Golang, penggunaan kaedah yang betul boleh membawa banyak faedah seperti kecekapan, kesederhanaan dan kemudahan penyelenggaraan kepada program.

Atas ialah kandungan terperinci Mari kita bincangkan tentang definisi dan penggunaan kaedah di Golang. 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