Bagaimana untuk melaksanakan kelas menggunakan Golang

PHPz
Lepaskan: 2023-04-05 09:17:42
asal
781 orang telah melayarinya

Golang ialah bahasa pengaturcaraan yang sangat popular dengan banyak ciri dan fungsi termaju. Salah satu ciri utama ialah pengaturcaraan berorientasikan objek, yang boleh menggunakan struktur untuk melaksanakan konsep yang serupa dengan kelas dalam berorientasikan objek. Artikel ini akan memperkenalkan cara menggunakan Golang untuk melaksanakan kelas.

  1. Struktur

Di Golang, struktur ialah jenis data tersuai yang digunakan untuk menyimpan satu set medan data yang berkaitan. Ia boleh mengandungi medan pelbagai jenis, seperti rentetan, integer, terapung, dsb.

Sintaks untuk mentakrifkan struktur adalah seperti berikut:

type StructName struct {
    field1 type1
    field2 type2
    ...
}
Salin selepas log masuk

di mana, StructName ialah nama struktur, field1, field2, dsb. ialah medan nama dalam struktur, type1, type2, dsb. ialah jenis data medan yang sepadan.

Sebagai contoh, berikut ialah struktur ringkas Person, yang mengandungi dua medan: nama dan umur:

type Person struct {
    Name string
    Age int
}
Salin selepas log masuk

Selepas mentakrifkan struktur, kita boleh menggunakannya untuk mencipta Contoh .

p := Person{
    Name: "张三",
    Age: 18,
}
Salin selepas log masuk
  1. Kaedah

Di Golang, kaedah ialah fungsi yang merupakan penerima penunjuk atau penerima nilai. Kaedah mempunyai sintaks yang serupa dengan fungsi biasa, tetapi boleh dikaitkan dengan struktur, dengan itu melaksanakan konsep yang serupa dengan kaedah kelas dalam kaedah berorientasikan objek. Kaedah boleh mengakses medan dalam struktur.

Sintaks untuk mentakrifkan kaedah adalah seperti berikut:

func (receiver ReceiverType) MethodName(args...) return_type {
    // 方法实现
}
Salin selepas log masuk

di mana, receiver ialah penerima kaedah, ReceiverType boleh menjadi penunjuk atau jenis nilai, MethodName ialah nama kaedah, args ialah parameter, return_type ialah jenis nilai pulangan.

Contoh berikut menunjukkan cara mentakrifkan kaedah Person untuk struktur SayHello supaya ia boleh bertanya khabar.

func (p Person) SayHello() {
    fmt.Printf("您好,我叫%s,今年%d岁。\n", p.Name, p.Age)
}
Salin selepas log masuk

Kaedah ini menerima penerima jenis Person dan mengeluarkan nama dan umur contoh Person.

  1. Warisan

Warisan ialah konsep penting dalam pengaturcaraan berorientasikan objek. Ia membenarkan kelas untuk "mewarisi" sifat dan kaedah kelas lain dan melanjutkannya berdasarkannya.

Warisan bukan ciri yang disokong secara langsung di Golang. Walau bagaimanapun, kita boleh menggunakan komposisi untuk mencapai kesan yang serupa dengan warisan.

Secara konkrit, kita boleh mentakrifkan struktur yang mengandungi penunjuk kepada struktur lain dan melaksanakan pewarisan dengan melanjutkan kaedahnya.

Sebagai contoh, kita boleh mentakrifkan struktur Student yang mengandungi medan jenis Person dan medan lain yang mewakili kelas.

type Student struct {
    person *Person
    class string
}
Salin selepas log masuk

Kemudian, kita boleh melanjutkan kaedah struktur Student dalam struktur Person. Dalam pelaksanaan kaedah, kita boleh menggunakan medan person untuk mengakses medan struktur Person.

func (s Student) Study() {
    fmt.Printf("%s在%s班级学习...\n", s.person.Name, s.class)
}

func (s Student) SayHello() {
    s.person.SayHello()
    fmt.Printf("我在%s班级上学。\n", s.class)
}
Salin selepas log masuk
  1. Contoh Penuh

Di bawah ialah contoh lengkap yang menunjukkan cara melaksanakan kelas menggunakan Golang.

package main

import "fmt"

type Person struct {
    Name string
    Age int
}

func (p Person) SayHello() {
    fmt.Printf("您好,我叫%s,今年%d岁。\n", p.Name, p.Age)
}

type Student struct {
    person *Person
    class string
}

func (s Student) Study() {
    fmt.Printf("%s在%s班级学习...\n", s.person.Name, s.class)
}

func (s Student) SayHello() {
    s.person.SayHello()
    fmt.Printf("我在%s班级上学。\n", s.class)
}

func main() {
    p := Person{
        Name: "张三",
        Age: 18,
    }
    s := Student{
        person: &p,
        class: "高中一年级",
    }

    s.SayHello()
    s.Study()
}
Salin selepas log masuk

Laksanakan kod di atas, hasil output ialah:

您好,我叫张三,今年18岁。
我在高中一年级班级上学。
Salin selepas log masuk
  1. Ringkasan

Golang menyediakan ciri yang serupa dengan pengaturcaraan berorientasikan objek , Konsep kelas boleh dilaksanakan menggunakan struktur dan kaedah. Walaupun Golang tidak menyokong warisan secara langsung, kita boleh menggunakan komposisi untuk mencapai kesan yang serupa dengan warisan. Melalui ciri ini, kita boleh menulis kod dengan gaya pengaturcaraan berorientasikan objek di Golang.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kelas menggunakan 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