Rumah  >  Artikel  >  pembangunan bahagian belakang  >  kaedah penunjuk golang

kaedah penunjuk golang

PHPz
PHPzasal
2023-05-19 14:13:38518semak imbas

Golang ialah bahasa pengaturcaraan yang sangat berkuasa dengan banyak ciri dan fungsi, antaranya kaedah penunjuk adalah ciri yang sangat penting. Artikel ini akan memperkenalkan pengetahuan berkaitan kaedah penunjuk Golang.

Pertama sekali, apakah penunjuk? Dalam atur cara, pembolehubah ialah label atau nama yang menunjuk ke alamat memori. Penunjuk ialah nilai yang menunjuk ke alamat memori pembolehubah. Dengan menggunakan penunjuk, program boleh memanipulasi data secara langsung dalam ingatan, yang boleh meningkatkan kecekapan program.

Kaedah penunjuk dalam Golang boleh difahami sebagai kaedah yang ditakrifkan pada jenis, dan kaedah tersebut boleh mengendalikan data dalaman jenis tersebut secara langsung. Kaedah penunjuk ditakrifkan dengan menambah parameter sebelum nama kaedah untuk menentukan penerima kaedah Penerima boleh menjadi jenis penunjuk atau bukan jenis penunjuk.

Sebagai contoh, kod berikut mentakrifkan jenis struktur Orang, dan jenis penunjuk PersonPtr yang menunjuk kepada jenis Orang:

type Person struct {
    Name string
    Age  int
}

func (p *Person) SayHello() {
    fmt.Printf("Hi, my name is %s. I am %d years old.
", p.Name, p.Age)
}

func main() {
    person := Person{Name: "Bob", Age: 28}
    personPtr := &person
    personPtr.SayHello()
}

Dalam kod di atas, jenis Orang mentakrifkan kaedah penunjuk SayHello. Penerima kaedah ini ialah jenis penunjuk PersonPtr yang menunjuk kepada jenis Orang, yang boleh mengendalikan data jenis Orang secara langsung.

Dalam fungsi utama, kami membuat instantiat orang pembolehubah jenis Orang, dan kemudian mendapatkan penunjuk kepada orang jenis personPtr dengan mengambil alamat pembolehubah Akhirnya, kami memanggil kaedah SayHello personPtr untuk mengeluarkan hasilnya .

Kaedah penunjuk boleh menjadi penerima nilai atau penerima penunjuk. Dalam contoh di atas, kami menggunakan penerima penunjuk, iaitu p *Orang, yang bermaksud kaedah itu perlu menghantar penunjuk kepada jenis Orang. Jika anda menggunakan penerima nilai, iaitu p Orang, maka kaedah ini perlu menghantar nilai jenis Orang.

Perbezaan utama antara penerima nilai dan penerima penunjuk ialah jenis pembolehubah yang boleh mereka akses. Dalam penerima nilai, hanya salinan pembolehubah boleh diakses, manakala dalam penerima penunjuk, pembolehubah itu sendiri boleh diakses secara langsung. Oleh itu, apabila anda perlu mengubah suai nilai pembolehubah, anda biasanya menggunakan penerima penunjuk dan apabila anda hanya perlu membaca nilai pembolehubah, adalah lebih sesuai untuk menggunakan penerima nilai.

Berikut ialah contoh menggunakan penerima nilai:

type Rectangle struct {
    Length float64
    Width  float64
}

func (r Rectangle) Area() float64 {
    return r.Length * r.Width
}

func main() {
    rect := Rectangle{Length: 10, Width: 5}
    fmt.Println(rect.Area())
}

Dalam contoh di atas, kami mentakrifkan jenis struktur Segi Empat, yang mempunyai dua medan Panjang dan Lebar, dan kemudian kami menentukan nilai A kaedah penerima Luas digunakan untuk mengira luas segi empat tepat. Dalam fungsi utama, kami membuat instantiat objek dari jenis Rectangle dan memanggil kaedah Kawasannya.

Ringkasnya, kaedah penunjuk Golang ialah fungsi yang sangat penting Kaedah penunjuk boleh digunakan untuk mengendalikan data dalaman jenis secara langsung, dengan itu meningkatkan kecekapan program. Semasa menulis kod, anda perlu memilih penerima nilai atau penerima penunjuk mengikut situasi sebenar.

Atas ialah kandungan terperinci kaedah penunjuk 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:penetapan zon waktu golangArtikel seterusnya:penetapan zon waktu golang