Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kaedah dan warisan dalam bahasa Go

Kaedah dan warisan dalam bahasa Go

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

Dengan kemunculan era pengkomputeran awan dan data besar, bahasa pengaturcaraan sentiasa membangun dan bertambah baik. Antaranya, bahasa Go telah menarik lebih ramai pembangun dengan pengaturcaraan serentak yang cekap, perpustakaan rangkaian yang sangat baik dan sintaks yang mudah dipelajari. Dalam bahasa Go, kaedah dan pewarisan adalah dua konsep yang sangat penting. Artikel ini akan memperkenalkan pengetahuan berkaitan kaedah dan warisan dalam bahasa Go untuk membantu pembaca memahami dan menggunakan bahasa Go dengan lebih baik.

Kaedah

Dalam bahasa Go, kaedah merujuk kepada fungsi yang dikaitkan dengan jenis. Tiada konsep kelas dalam bahasa Go, tetapi jenis berkaitan dilaksanakan dengan mentakrifkan struktur (struktur). Fungsi yang ditakrifkan dalam struktur ialah kaedah. Kaedah boleh diluluskan dan dipanggil, dan boleh menerima parameter dan mengembalikan nilai. Format sintaks kaedah adalah seperti berikut:

func (nama_penerima_jenis_penerima) nama_fungsi([parameter]) [jenis_pulangan] {

// Function body

}

Di mana, nama_penerima mewakili kaedah kepunyaan kaedah Nama jenis struktur, Receiver_type mewakili jenis struktur, function_name mewakili nama kaedah, parameter mewakili senarai parameter kaedah, dan return_type mewakili jenis nilai pulangan kaedah. . Dalam senarai parameter kaedah, penerima dihantar sebagai parameter pertama dan boleh digunakan untuk memanggil kaedah atau sifat lain dalam struktur. Dalam nilai pulangan kaedah, sebarang jenis undang-undang boleh dikembalikan, walaupun jenis struktur. Berikut ialah contoh mudah:

utama pakej

import "fmt"

taip struct Bulatan {

radius float64

}

func (c Circle) getArea() float64 {

return 3.14 * c.radius * c.radius

}

func main() {

c := Circle{radius: 5}
fmt.Println("Area of circle:", c.getArea())

}

Dalam This In contohnya, struktur Bulatan ditakrifkan, yang mengandungi jejari jenis float64. Kaedah getArea mengira dan mengembalikan kawasan bulatan dengan memanggil c.getArea(). Output yang terhasil ialah: Luas bulatan: 78.5.

Warisan

Warisan ialah idea pengaturcaraan berorientasikan objek, yang bermaksud subkelas mewarisi atribut dan kaedah kelas induk. Dalam bahasa Go, pewarisan dilaksanakan melalui gubahan. Melalui struktur bersarang, satu struktur boleh bersarang dalam struktur lain untuk mencapai pewarisan sifat dan kaedah. Berikut ialah contoh:

pakej utama

import "fmt"

taip Person struct {

Name string
Age  int

}

taip Struktur pelajar {

Person
Grade int

}

func (p Orang) sayHello() {

fmt.Println("Hello, my name is", p.Name, "and I am", p.Age, "years old.")

}

func main() {

s := Student{Person: Person{Name: "Tom", Age: 22}, Grade: 90}
s.sayHello()
fmt.Println("My grade is", s.Grade)

}

Dalam contoh ini, dua struktur Orang dan Pelajar ditakrifkan. Struktur Pelajar meletakkan struktur Orang, dengan itu mewarisi sifat dan kaedah dalam Orang. Dalam fungsi utama, mula-mula buat objek Pelajar dan mulakan ahli jenis Orang menggunakan struktur bersarang. Kemudian, maklumat peribadi dikeluarkan dengan memanggil kaedah s.sayHello() dan maklumat gred diperoleh melalui s.Grade. Outputnya ialah: Hello, nama saya Tom dan saya berumur 22 tahun.

Ringkasan

Kaedah dan warisan merupakan konsep yang sangat penting dalam pengaturcaraan berorientasikan objek. Dalam bahasa Go, walaupun tiada konsep kelas, pelaksanaan kaedah dan warisan menjadi sangat ringkas dan mudah difahami melalui struktur dan struktur bersarang. Menguasai pengetahuan berkaitan kaedah dan warisan boleh membantu pembangun menggunakan bahasa Go dengan lebih baik untuk pengaturcaraan dan meningkatkan kecekapan dan prestasi program.

Atas ialah kandungan terperinci Kaedah dan warisan dalam bahasa Go. 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