Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara melaksanakan antara muka dalam bahasa Go

Cara melaksanakan antara muka dalam bahasa Go

PHPz
PHPzasal
2023-04-05 13:47:343086semak imbas

Bahasa Go (juga dipanggil Golang) ialah bahasa pengaturcaraan sumber terbuka yang dibangunkan oleh Google Ia mempunyai ciri kecekapan, kebolehpercayaan dan kesederhanaan. Ciri penting bahasa Go ialah "antara muka". Antara muka ialah koleksi tandatangan kaedah dan merupakan jenis abstrak. Artikel ini akan memperkenalkan cara melaksanakan antara muka dalam bahasa Go.

1. Definisi antara muka

Dalam bahasa Go, definisi antara muka menggunakan kata kunci "antara muka", dan format sintaks adalah seperti berikut:

type 接口名 interface{
    方法名1(参数列表1) 返回值列表1
    方法名2(参数列表2) 返回值列表2
    ……
}

Antara mereka, nama antara muka dan kaedah Penamaan mengikut konvensyen penamaan bahasa Go. Nama kaedah dinamakan dalam kes unta Huruf pertama nama kaedah ditulis dengan huruf besar untuk menunjukkan bahawa ia boleh dilihat oleh dunia luar. Dalam antara muka, nama kaedah, bersama senarai parameter dan senarai nilai pulangan, dipanggil "tandatangan kaedah".

2. Pelaksanaan antara muka

Pelaksanaan antara muka merujuk kepada blok kod kaedah yang melaksanakan antara muka berdasarkan tandatangan kaedah yang ditakrifkan oleh antara muka. Kaedah yang melaksanakan antara muka memerlukan tandatangan kaedah yang memenuhi keperluan antara muka Kaedah ini dipanggil "kaedah antara muka."

Pelaksanaan antara muka memerlukan penggunaan mekanisme penukaran jenis unik bahasa Go. Khususnya, pelaksanaan antara muka perlu menukar jenis pelaksanaan (jenis yang melaksanakan kaedah antara muka) kepada jenis antara muka (jenis yang melaksanakan antara muka) dengan melaksanakan "kaedah antara muka". Dalam penukaran jenis, jenis pelaksanaan perlu melaksanakan semua tandatangan kaedah yang ditakrifkan oleh antara muka mana-mana antara muka boleh melaksanakan antara muka selagi semua kaedah dilaksanakan.

Sebagai contoh, kami mentakrifkan antara muka "haiwan" dan dua struktur "anjing" dan "kucing", dan melaksanakan "kaedah antara muka" yang sepadan dengan dua struktur ini. Kodnya adalah seperti berikut:

type Animal interface {
    Speak() string
}

type Dog struct {
}

func (d Dog) Speak() string {
    return "汪汪汪"
}

type Cat struct {
}

func (c Cat) Speak() string {
    return "喵喵喵"
}

func main() {
    var animal Animal //定义一个Animal类型变量
    animal = Dog{}     //将Dog类型的结构体转换为Animal类型的接口实现
    fmt.Println(animal.Speak())

    animal = Cat{}     //将Cat类型的结构体转换为Animal类型的接口实现
    fmt.Println(animal.Speak())
}

Dalam kod di atas, kami mentakrifkan antara muka "Haiwan", yang mengandungi kaedah antara muka "Cakap" pada masa yang sama, kami mentakrifkan dua jenis, iaitu "Anjing " dan " Cat" dan laksanakan kaedah antara muka "Speak" yang sepadan. Dalam fungsi utama, kami melaksanakan panggilan kaedah "Cakap" dengan menukar pembolehubah jenis "Anjing" dan "Kucing" ke dalam pelaksanaan antara muka jenis "Haiwan".

3. Pelaksanaan berbilang antara muka

Dalam bahasa Go, struktur boleh melaksanakan berbilang antara muka dan antara muka boleh dilaksanakan oleh berbilang struktur pada masa yang sama. Dalam kes ini, kita perlu menggunakan gabungan untuk melaksanakan berbilang antara muka.

Sebagai contoh, kami mentakrifkan antara muka "haiwan" dan antara muka "haiwan peliharaan", dan kami melaksanakan antara muka "haiwan" dan "haiwan peliharaan" dalam struktur "anjing" masing-masing. Kod tersebut adalah seperti berikut:

type Animal interface {
    Speak() string
}

type Pet interface {
    Name() string
}

type Dog struct {
    name string
}

func (d Dog) Speak() string {
    return "汪汪汪"
}

func (d Dog) Name() string {
    return d.name
}

func main() {
    var animal Animal //定义一个Animal类型变量
    animal = Dog{name: "小明"} //将Dog类型的结构体转换为Animal类型的接口实现
    fmt.Println(animal.Speak())

    var pet Pet       //定义一个Pet类型变量
    pet = Dog{name: "小花"}   //将Dog类型的结构体转换为Pet类型的接口实现
    fmt.Println(pet.Name())
}

Dalam kod di atas, kami mentakrifkan antara muka "haiwan" dan antara muka "haiwan peliharaan", dan melaksanakan kaedah antara muka yang sepadan bagi struktur "anjing". Dalam fungsi utama, kami menukar struktur "anjing" masing-masing ke dalam pelaksanaan antara muka "haiwan" dan pelaksanaan antara muka "haiwan peliharaan", dengan itu merealisasikan panggilan kaedah "Cakap" dan "Nama".

4. Ringkasan

Antara muka dalam bahasa Go ialah ciri penting, yang boleh merealisasikan polimorfisme dan membantu kami merealisasikan idea pengaturcaraan berorientasikan antara muka. Dalam bahasa Go, takrifan dan pelaksanaan antara muka adalah sangat mudah, tetapi anda perlu menguasai mekanisme penukaran jenis bahasa Go. Artikel ini memperkenalkan secara ringkas antara muka dan pelaksanaan antara muka dalam bahasa Go dan menerangkan situasi berbilang antara muka melalui contoh.

Atas ialah kandungan terperinci Cara melaksanakan antara muka 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