Rumah pembangunan bahagian belakang Golang Sembang mendalam tentang kaedah dalam golang (tutorial)

Sembang mendalam tentang kaedah dalam golang (tutorial)

Apr 11, 2023 am 10:42 AM

Golang ialah bahasa pengaturcaraan moden yang dilahirkan untuk menyelesaikan kekurangan C++ dan Java. Oleh kerana kecekapannya, kemudahan pembelajaran dan kebolehpercayaan yang tinggi, Golang telah menjadi bahasa pilihan bagi banyak syarikat besar. Kaedah dalam Golang ialah ciri yang sangat berkuasa kerana ia membolehkan kami memodulasi dan mengatur kod kami dengan lebih baik. Dalam artikel berikut, kami akan mempelajari kaedah dalam Golang dan memahami cara kaedah tersebut berinteraksi dengan kod kami.

Apakah kaedah Golang?

Di Golang, kaedah ialah fungsi untuk jenis tersuai. Dalam erti kata lain, apabila anda mentakrifkan jenis dan ingin melakukan operasi tertentu pada jenis itu, anda menentukan kaedah untuk mencapai operasi tersebut. Kaedah sering dipanggil tingkah laku jenis kerana ia membolehkan anda menentukan cara jenis itu harus berkelakuan.

Kaedah di Golang sedikit berbeza daripada kaedah dalam bahasa pengaturcaraan lain. Mereka tidak boleh wujud bersendirian. Sebaliknya, mereka mesti terikat pada jenis untuk menunjukkan bahawa mereka tergolong dalam jenis itu. Ini bermakna apabila anda menentukan kaedah, anda mesti menentukan jenis untuk diikat. Ini dilakukan menggunakan sintaks "()" antara nama kaedah dan jenis penerima. Berikut ialah contoh kod untuk mentakrifkan kaedah dalam Golang:

type Person struct {
    Name string
    Age  int
}

func (p Person) GetName() string {
    return p.Name
}

func (p Person) GetAge() int {
    return p.Age
}
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan jenis bernama Person, dan kemudian mentakrifkan dua kaedah GetName dan GetAge. Setiap kaedah mempunyai penerima yang menentukan jenis kaedah yang terikat. Dalam kes ini, penerima adalah jenis Orang. Apabila kita memanggil p.GetName(), kaedah akan mengambil contoh jenis Orang sebagai parameter.

Bagaimana untuk menentukan kaedah Golang?

Di Golang, mentakrifkan kaedah adalah sangat mudah. Kita boleh menggunakan sintaks berikut untuk menukar fungsi kepada kaedah:

func (t Type) methodName(parameter list) {
 //方法内容
}
Salin selepas log masuk

di mana Type mewakili jenis kaedah yang akan diikat, dan methodName mewakili nama kaedah yang anda mahu gunakan. Penerima adalah parameter dan boleh menjadi penerima nilai atau penerima penunjuk.

Dalam kod contoh berikut, kami mentakrifkan jenis bernama Kereta dan kaedah bernama Drive:

type Car struct {
    brand string
    model string
}

func (c Car) Drive() {
    fmt.Printf("Driving %s %s\n", c.brand, c.model)
}
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan jenis bernama Untuk jenis Kereta, Drive kaedah kemudiannya ditakrifkan. Kaedah ini menerima contoh jenis Kereta bernama c sebagai parameter, yang akan digunakan untuk mengeluarkan mesej.

Bagaimana cara menggunakan kaedah Golang?

Di Golang, penggunaannya sangat mudah. Setelah kaedah ditakrifkan, kami boleh menggunakan kaedah tersebut pada contoh jenis itu menggunakan pengendali "."

Contohnya:

car := Car{
    brand: "BMW",
    model: "M5",
}

car.Drive()
Salin selepas log masuk

Dalam kod di atas, kami mencipta jenis Kereta yang dipanggil kereta dan menetapkannya untuk mempunyai nilai buatan dan model "BMW" dan "M5". Kami kemudian memanggil kaedah ini menggunakan fungsi Drive.

Penerima Nilai dan Penerima Penunjuk

Di Golang, terdapat juga jenis penerima yang berbeza: penerima penunjuk. Penerima penunjuk sangat serupa dengan penerima nilai, tetapi terdapat beberapa perbezaan penting apabila menggunakannya. Penerima penunjuk menggunakan operator "*" sebelum nama jenis.

Gunakan penerima nilai atau penerima penunjuk bergantung pada perkara yang anda mahu lakukan. Penerima nilai biasanya merupakan pilihan terbaik apabila anda hanya perlu membaca sifat contoh. Jika anda ingin mengubah suai sifat kejadian, anda perlu menggunakan penerima penunjuk.

Kod sampel berikut menunjukkan cara menggunakan penerima penunjuk:

func (c *Car) SetBrand(brand string) {
    c.brand = brand
}
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan kaedah yang dipanggil SetBrand dan menggunakan penerima penunjuk untuk Mengikat pada jenis Kereta. Oleh itu, apabila kaedah dipanggil, kaedah tersebut akan menerima penunjuk kepada contoh Kereta, bukan contoh Kereta itu sendiri. Ini membolehkan kami mengubah suai sifat kejadian itu.

Ringkasan

Kaedah di Golang ialah alat yang berkuasa untuk mengendalikan jenis. Mereka menjadikan kod lebih modular dan boleh digunakan semula, dan menyediakan pengaturcara dengan cara yang mudah untuk menentukan tingkah laku sesuatu jenis. Sama ada anda baru mengenali Golang atau pakar, memahami kaedah dalam Golang adalah penting untuk menulis kod berkualiti tinggi.

Atas ialah kandungan terperinci Sembang mendalam tentang kaedah dalam golang (tutorial). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

GO Language Pack Import: Apakah perbezaan antara garis bawah dan tanpa garis bawah? GO Language Pack Import: Apakah perbezaan antara garis bawah dan tanpa garis bawah? Mar 03, 2025 pm 05:17 PM

GO Language Pack Import: Apakah perbezaan antara garis bawah dan tanpa garis bawah?

Bagaimana untuk melaksanakan pemindahan maklumat jangka pendek antara halaman dalam kerangka beego? Bagaimana untuk melaksanakan pemindahan maklumat jangka pendek antara halaman dalam kerangka beego? Mar 03, 2025 pm 05:22 PM

Bagaimana untuk melaksanakan pemindahan maklumat jangka pendek antara halaman dalam kerangka beego?

Bagaimana saya menulis objek dan stub untuk ujian di GO? Bagaimana saya menulis objek dan stub untuk ujian di GO? Mar 10, 2025 pm 05:38 PM

Bagaimana saya menulis objek dan stub untuk ujian di GO?

Bagaimana saya boleh menggunakan alat pengesanan untuk memahami aliran pelaksanaan aplikasi saya? Bagaimana saya boleh menggunakan alat pengesanan untuk memahami aliran pelaksanaan aplikasi saya? Mar 10, 2025 pm 05:36 PM

Bagaimana saya boleh menggunakan alat pengesanan untuk memahami aliran pelaksanaan aplikasi saya?

Bagaimana anda menulis ujian unit di GO? Bagaimana anda menulis ujian unit di GO? Mar 21, 2025 pm 06:34 PM

Bagaimana anda menulis ujian unit di GO?

Bagaimana cara menulis fail dalam bahasa Go dengan mudah? Bagaimana cara menulis fail dalam bahasa Go dengan mudah? Mar 03, 2025 pm 05:15 PM

Bagaimana cara menulis fail dalam bahasa Go dengan mudah?

Bagaimana cara menukar senarai hasil pertanyaan mysql ke dalam slice struktur tersuai dalam bahasa Go? Bagaimana cara menukar senarai hasil pertanyaan mysql ke dalam slice struktur tersuai dalam bahasa Go? Mar 03, 2025 pm 05:18 PM

Bagaimana cara menukar senarai hasil pertanyaan mysql ke dalam slice struktur tersuai dalam bahasa Go?

Bagaimana saya boleh menentukan kekangan jenis tersuai untuk generik di GO? Bagaimana saya boleh menentukan kekangan jenis tersuai untuk generik di GO? Mar 10, 2025 pm 03:20 PM

Bagaimana saya boleh menentukan kekangan jenis tersuai untuk generik di GO?

See all articles