Rumah  >  Artikel  >  pembangunan bahagian belakang  >  kaedah struktur golang

kaedah struktur golang

王林
王林asal
2023-05-27 18:30:34663semak imbas

Golang ialah bahasa pengaturcaraan moden yang bukan sahaja ringkas dan mudah digunakan, tetapi juga sangat cekap semasa menulis dan mengekalkan pangkalan kod yang besar. Golang menyokong pengaturcaraan berorientasikan objek, dan salah satu konsep yang disertakan ialah struktur. Mari kita lihat pengetahuan berkaitan struktur dan kaedah di Golang.

1. Apakah itu struktur?

Di Golang, struktur ialah jenis data tersuai yang terdiri daripada set medan dengan jenis yang sama atau jenis yang berbeza. Anda boleh memikirkan struktur sebagai templat yang menerangkan set sifat dan kaedah objek. Berikut ialah contoh struktur ringkas:

type Person struct {
    Name string
    Age  int
}

Dalam contoh ini, kami mentakrifkan struktur bernama Orang, yang mengandungi dua medan Nama dan Umur, masing-masing mewakili nama dan umur orang itu. Medan struktur boleh mempunyai jenis data yang berbeza, termasuk sebarang jenis terbina dalam atau jenis tersuai. Sebagai contoh, jika kita ingin menambah bidang pengalaman kerja, kita boleh melakukan ini:

type Person struct {
    Name string
    Age  int
    Experience []string
}

2. Apakah kaedahnya?

Kaedah ialah fungsi yang dikaitkan dengan struktur. Mereka boleh melakukan operasi pada struktur dan mengakses serta mengubah suai medannya. Di Golang, takrif kaedah sangat serupa dengan takrifan fungsi, tetapi kaedah perlu menambah jenis penerima sebelum nama fungsi. Jenis penerima boleh menjadi struktur atau jenis lain.

Berikut ialah contoh kaedah mudah:

type Person struct {
    Name string
    Age  int
}

func (p Person) SayHello() {
    fmt.Println("Hello, my name is", p.Name)
}

Dalam contoh ini, kami mentakrifkan kaedah SayHello, yang mempunyai objek Orang bernama p sebagai penerima. Memandangkan kita mempunyai objek Orang sebagai penerima, dalam kaedah itu kita boleh mengakses medannya dan melakukan sebarang operasi lain. Sebagai contoh, kita boleh memanggil kaedah ini menggunakan kod berikut:

person := Person{Name: "Alice", Age: 25}
person.SayHello()

Ini akan mencetak "Hello, nama saya Alice" ke konsol.

3. Perbezaan antara kaedah struktur dan fungsi

Dalam Golang, fungsi dan kaedah adalah dua konsep yang berbeza, walaupun sintaksnya sangat serupa. Berikut ialah beberapa perbezaan antara kaedah dan fungsi struct:

  1. Kaedah ialah fungsi yang dikaitkan dengan struct, manakala fungsi ialah entiti bebas. Oleh itu, kaedah hanya boleh dipanggil melalui objek struktur, manakala fungsi boleh dipanggil secara langsung.
  2. Kaedah boleh mengakses dan mengubah suai medan struktur, manakala fungsi tidak boleh mengakses atau mengubah suai medan struktur melainkan ia melepasi objek struktur sebagai parameter.

4. Kaedah penunjuk dan kaedah nilai struktur

Seperti fungsi, kaedah juga boleh ditakrifkan pada penunjuk struktur, yang dipanggil kaedah penunjuk. Kaedah ini menerima penunjuk kepada struktur dan boleh mengubah suai medan struktur. Berikut ialah contoh kaedah penunjuk:

type Person struct {
    Name string
    Age  int
}

func (p *Person) UpdateName(name string) {
    p.Name = name
}

Dalam contoh ini, kami telah mentakrifkan kaedah UpdateName yang mempunyai penunjuk bernama kepada objek Orang sebagai penerima. Memandangkan kami menggunakan penunjuk sebagai penerima, kami boleh mengubah suai medan struktur di dalam kaedah. Sebagai contoh, gunakan kod berikut untuk memanggil kaedah ini untuk mengemas kini nama p kepada "Bob":

person := &Person{Name: "Alice", Age: 25}
person.UpdateName("Bob")

Dalam contoh di atas, kami menghantar penunjuk kepada objek Orang kepada kaedah, yang akan mengubah suai nama objek itu.

Kaedah nilai (tanpa penunjuk) hanya boleh dilaksanakan pada salinan struktur dan oleh itu tidak boleh mengubah suai struktur asal. Dalam kebanyakan kes kita harus menggunakan kaedah penunjuk supaya kita boleh mengubah suai struktur.

5. Ringkasan

Seperti fungsi, kaedah adalah satu lagi konsep asas Golang. Digunakan bersama-sama dengan struct, ia adalah alat yang sangat berguna untuk menulis kod yang lebih berstruktur. Dalam artikel ini, kami memperkenalkan pengetahuan berkaitan struktur dan kaedah di Golang, termasuk definisi struktur, definisi kaedah dan perbezaan antara kaedah penunjuk dan kaedah nilai. Saya harap artikel ini akan membantu anda memahami pengaturcaraan berorientasikan objek Golang.

Atas ialah kandungan terperinci kaedah struktur 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
Artikel sebelumnya:penyebaran kod golangArtikel seterusnya:penyebaran kod golang