Rumah > pembangunan bahagian belakang > Golang > Artikel untuk meneroka ciri-ciri kaedah golang

Artikel untuk meneroka ciri-ciri kaedah golang

PHPz
Lepaskan: 2023-04-06 17:05:04
asal
1112 orang telah melayarinya

Dengan pembangunan pengkomputeran awan dan data besar, semakin ramai pembangun mula menggunakan bahasa Golang untuk pembangunan. Golang ialah bahasa sumber terbuka dengan kelebihan kelajuan larian yang pantas, penggunaan memori yang kecil dan keupayaan serentak yang kuat. Di sini, artikel ini akan memperkenalkan ciri-ciri kaedah di Golang.

Kaedah di Golang ialah fungsi khas iaitu fungsi penerima. Fungsi penerima boleh difahami sebagai fungsi berdasarkan struktur atau jenis antara muka. Perbezaan terbesar antara fungsi penerima dan fungsi biasa ialah fungsi penerima mempunyai parameter penerima sebagai konteks untuk memanggil kaedah. Parameter penerima boleh menjadi jenis nilai atau jenis penunjuk.

Menggunakan fungsi penerima boleh memisahkan gelagat daripada struktur data, menjadikan kod lebih jelas dan lebih mudah untuk dikembangkan. Di Golang, fungsi penerima ditakrifkan seperti berikut:

func (r receiverType) functionName(parameters) {
    // function body
}
Salin selepas log masuk

Antaranya, receiverType mewakili jenis yang dimiliki oleh fungsi penerima (boleh mana-mana jenis, termasuk struktur dan antara muka, dll.), functionName mewakili nama fungsi, dan parameter mewakili parameter fungsi.

Antaranya, terdapat dua jenis parameter penerima:

  1. Jenis nilai (seperti int, rentetan, dll.)
  2. Jenis penunjuk (seperti: int, rentetan, dsb.)

Untuk fungsi penerima jenis nilai, nilai akan disalin apabila dipanggil, iaitu salinan data akan disalin setiap masa. Untuk fungsi penerima jenis penunjuk, data yang sama akan dikongsi apabila dipanggil.

Yang berikut menggunakan contoh untuk memperkenalkan ciri-ciri fungsi penerima.

package main

import "fmt"

type Person struct {
    Name string
    Age  int
}

func (p Person) SayHello() {
    fmt.Printf("Hello, my name is %s\n", p.Name)
}

func (p *Person) IncreaseAge() {
    p.Age++
}

func main() {
    person := Person{
        Name: "Jack",
        Age:  20,
    }

    person.SayHello() // Hello, my name is Jack

    person.IncreaseAge()
    fmt.Printf("The age of %s is %d\n", person.Name, person.Age) // The age of Jack is 21
}
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan jenis Orang, yang mengandungi dua medan: Nama dan Umur. Kemudian kami menentukan dua fungsi penerima, sepadan dengan kaedah SayHello dan IncreaseAge. Antaranya, SayHello ialah fungsi penerima jenis nilai, dan IncreaseAge ialah fungsi penerima jenis penunjuk.

Dalam fungsi utama, kami mencipta objek orang dan memanggil fungsi SayHellonya. Memandangkan SayHello ialah fungsi penerima jenis nilai, salinan objek orang akan dibuat apabila ia dipanggil. Kami mengeluarkan medan Nama objek dalam fungsi SayHello.

Seterusnya, kami memanggil fungsi IncreaseAge seseorang. Memandangkan IncreaseAge ialah fungsi penerima jenis penunjuk, objek orang yang sama digunakan apabila ia dipanggil. Kami menambah 1 pada medan Umur objek dalam fungsi IncreaseAge, dan mengeluarkan medan Nama dan Umur objek dalam fungsi utama.

Melalui contoh di atas, kita dapat melihat ciri-ciri fungsi penerima di Golang:

  1. Ia boleh memisahkan kaedah daripada struktur data.
  2. Pelbagai kaedah boleh ditakrifkan dalam jenis yang sama.
  3. Menyalin atau merujuk data boleh dicapai melalui fungsi penerima jenis nilai dan jenis penunjuk.
  4. Data boleh diubah suai melalui fungsi penerima.
  5. Fungsi penerima yang sama boleh dikongsi antara jenis yang berbeza.

Atas ialah kandungan terperinci Artikel untuk meneroka ciri-ciri kaedah 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