Rumah >pembangunan bahagian belakang >Golang >Penerangan terperinci kaedah golang

Penerangan terperinci kaedah golang

PHPz
PHPzasal
2023-04-25 15:11:19731semak imbas

Bahasa Go (Golang), sebagai bahasa pengaturcaraan berprestasi tinggi yang baru muncul, telah menerima lebih banyak perhatian dan sokongan dalam bidang pembangunan sejak beberapa tahun kebelakangan ini. Antaranya, kaedah Go ialah ciri penting bahasa Go Ia bukan sahaja menyediakan cara yang lebih mudah untuk mengatur kod, tetapi juga membolehkan penggunaan semula dan penyelenggaraan kod yang lebih baik. Berikut akan memperkenalkan konsep, jenis, definisi dan penggunaan kaedah Go masing-masing.

1. Konsep kaedah

Dalam bahasa Go, kaedah ialah fungsi yang dikaitkan dengan jenis tertentu, yang boleh dipanggil pada jenis itu. Kaedah biasanya ditakrifkan dengan parameter penerima, di mana parameter penerima mewakili jenis kaedah dipanggil. Melalui parameter penerima ini, kaedah boleh mengakses sebarang sifat dan kaedah jenis untuk melaksanakan fungsi operasi pada data.

Sebagai contoh, untuk jenis struktur Orang, anda boleh menentukan kaedah SayHello, yang mengembalikan jenis rentetan:

taip Person struct {

name string
age  int

}

func (p Orang) SayHello() rentetan {

return "Hello, my name is " + p.name + ", I'm " + strconv.Itoa(p.age) + " years old."

}

Dalam kod di atas, kaedah SayHello mentakrifkan penerima p Orang, dan Nama atribut penerima dan umur digunakan dalam kaedah, dan ucapan jenis rentetan akhirnya dikembalikan. Selepas kaedah ini ditakrifkan, ia boleh dipanggil melalui contoh jenis Orang.

2. Jenis kaedah

Kaedah Go boleh dibahagikan kepada dua jenis: penerima nilai dan penerima penunjuk.

Penerima jenis nilai (iaitu, salinan nilai tika) biasanya digunakan dalam senario di mana keadaan dalaman tika itu tidak perlu diubah Ia ditakrifkan sebagai:

func (p Orang) SayHello() rentetan {

return "Hello, my name is " + p.name + ", I'm " + strconv.Itoa(p.age) + " years old."

}

Penerima jenis penunjuk (iaitu, penunjuk contoh) biasanya digunakan dalam senario di mana keadaan dalaman instance perlu diubah. IncreaseAge mentakrifkan penerima p

Orang dan mengubah suai penerima dalam kaedah Umur atribut peranti. Ambil perhatian bahawa penerima jenis penunjuk boleh menerima penunjuk kepada jenis atau jenis yang memerlukan alamat Pengisytiharan kaedah dalam borang ini memerlukan "

" sebelum nama jenis "*" di sini ialah jenis penunjuk.

p.age++
3. Definisi kaedah

Terdapat dua cara untuk mentakrifkan kaedah Go, satu adalah untuk menentukan kaedah apabila jenis diisytiharkan, dan satu lagi adalah untuk menentukan kaedah melalui fungsi di luar jenis.

Cara untuk mentakrifkan kaedah pada pengisytiharan jenis adalah seperti berikut:

type Person struct {

}

func (p Person) SayHello () rentetan {

}
name string
age  int

Dalam kod di atas, kaedah SayHello ditakrifkan dalam jenis Orang.

Cara untuk mentakrifkan kaedah melalui fungsi di luar jenis adalah seperti berikut:

return "Hello, my name is " + p.name + ", I'm " + strconv.Itoa(p.age) + " years old."
type Person struct {

}

func ( p Orang) SayHello () rentetan {

}
name string
age  int

func (p *Orang) IncreaseAge() {

}
return "Hello, my name is " + p.name + ", I'm " + strconv.Itoa(p.age) + " years old."

dalam kod di atas, kaedah IncreaseAge ditakrifkan melalui fungsi dan ditambah di luar jenis Orang.

4. Penggunaan kaedah

p.age++
Kaedah ini digunakan sama dengan fungsi lain dan boleh dipanggil dalam dua cara berikut:

1 .

p := Orang{nama: "Tom", umur: 18}

p.SayHello() // Hello, nama saya Tom, saya berumur 18 tahun.

2. Panggilan melalui penunjuk jenis.

pp := &Person{name: "Jack", umur: 20}

pp.IncreaseAge() // Ubah suai atribut umur pp, pada masa ini pp.age=21.


Di atas ialah pengenalan terperinci kepada kaedah Go Bagi pembangun yang menggunakan Go untuk membangunkan, sama ada melalui struktur atau jenis antara muka, menggunakan kaedah Go boleh mencapai penggunaan semula dan penyelenggaraan kod dengan lebih baik.

Atas ialah kandungan terperinci Penerangan terperinci kaedah golang. 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