Rumah  >  Artikel  >  pembangunan bahagian belakang  >  antara muka dan kaedah golang

antara muka dan kaedah golang

王林
王林asal
2023-05-10 10:54:06444semak imbas

Antara muka dan kaedah Golang

Golang (atau Go) ialah bahasa pengaturcaraan sumber terbuka yang dibangunkan oleh Google. Ia menyediakan pengalaman pengaturcaraan yang cekap melalui model konkurensi yang unik dan pengumpul sampah. Antara muka dan kaedah di Golang adalah salah satu konsep terasnya dan sangat penting untuk menguasai bahasa pengaturcaraan Golang.

Antaramuka dalam Golang

Antaramuka ialah satu cara untuk mencapai polimorfisme. Ia mentakrifkan satu set spesifikasi untuk kod program, ia dipanggil jenis antara muka. Mereka mentakrifkan satu set kaedah tetapi tidak menyediakan pelaksanaan. Walaupun tanpa mengisytiharkan jenis antara muka tertentu secara eksplisit, program Go masih boleh menyemak sama ada sesuatu jenis memenuhi keperluan antara muka tertentu.

Di Golang, antara muka adalah sangat penting. Jika anda ingin menggunakan Golang, maka anda mesti memahami definisi dan pelaksanaan antara muka Golang. Berikut ialah beberapa contoh takrifan antara muka Golang:

package main

import "fmt"

type Interface1 interface {
    method1() string
}

type Interface2 interface {
    method2() int
}

type Interface3 interface {
    Interface1
    Interface2
    method3() bool
}

type Struct1 struct {
    name string
}

type Struct2 struct {
    age int
}

func (s1 *Struct1) method1() string {
    return s1.name
}

func (s2 *Struct2) method2() int {
    return s2.age
}

func (s3 *Struct1) method3() bool {
    return true
}

func main() {
    s1 := Struct1{name: "John"}
    s2 := Struct2{age: 30}

    var iInterface1 Interface1 = &s1
    var iInterface2 Interface2 = &s2
    var iInterface3 Interface3 = &s3

    fmt.Println(iInterface1.method1())
    fmt.Println(iInterface2.method2())
    fmt.Println(iInterface3.method3())
}

Dalam contoh ini, kami telah mentakrifkan 3 antara muka, iaitu Interface1, Interface2 dan Interface3. Di mana Interface3 mewarisi Interface1 dan Interface2. Kami juga menentukan dua struktur Struct1 dan Struct2 dan melaksanakan kaedah antara muka yang sepadan untuk mereka. Dalam fungsi main(), kami menggunakan antara muka ini untuk memanggil kaedahnya.

Kaedah dalam Golang

Kaedah ialah fungsi yang dikaitkan dengan jenis tertentu yang boleh mengakses data jenis tersebut. Di Golang, kaedah ialah cara mengehadkan fungsi kepada jenis tertentu. Mereka boleh digunakan untuk mewakili jenis tingkah laku yang boleh dipanggil oleh objek lain. Kaedah boleh menjadi kaedah nilai atau kaedah penunjuk, bergantung pada sama ada ia mengubah suai nilai penerima.

Berikut ialah contoh definisi kaedah di Golang:

package main

import "fmt"

type Struct1 struct {
    name string
}

func (s1 Struct1) method1() string {
    return s1.name
}

func (s1 *Struct1) method2() {
    s1.name = "Jane"
}

func main() {
    s1 := Struct1{name: "John"}

    fmt.Println(s1.method1())

    s1.method2()
    fmt.Println(s1.method1())
}

Dalam contoh ini, kami mentakrifkan jenis Struct1 dan dua kaedah method1() dan method2(). Ambil perhatian bahawa penerima method2() ialah penunjuk kepada struktur, jadi ia boleh mengubah suai nilai struktur. Dalam fungsi main(), kami mencipta objek Struct1 dan memanggil kedua-dua kaedah ini masing-masing.

Sarang antara muka dan penegasan jenis

Di Golang, antara muka juga boleh disarang seperti struktur. Sarang antara muka boleh digunakan untuk menggabungkan keupayaan berbilang antara muka. Golang juga menyediakan operator penegasan jenis untuk menukar antara muka kepada nilai jenis lain.

Berikut ialah contoh penegasan bersarang dan jenis penegasan antara muka Golang:

package main

import "fmt"

type Interface1 interface {
    method1() string
}

type Interface2 interface {
    method2() int
}

type Struct1 struct {
    name string
}

func (s1 *Struct1) method1() string {
    return s1.name
}

func (s1 *Struct1) method2() int {
    return len(s1.name)
}

func main() {
    s1 := Struct1{name: "John"}

    var iInterface1 Interface1 = &s1
    var iInterface2 Interface2 = iInterface1.(Interface2)

    fmt.Println(iInterface2.method2())
}

Dalam contoh ini, kami mentakrifkan antara muka Interface1 dan Interface2 dan menyediakan struktur Struct1 The badan melaksanakan dua kaedah method1() dan method2(). Dalam fungsi main(), kami menghantar objek Struct1 ke antara muka Interface1 dan menghantarnya semula ke antara muka Interface2. Kemudian kami memanggil kaedah method2() dan mencetak hasilnya.

Ringkasan

Di Golang, antara muka dan kaedah ialah salah satu konsep yang paling penting. Mereka menyediakan pengalaman pengaturcaraan yang lebih cekap di Golang. Dengan menggunakan antara muka, kita boleh menyatakan tingkah laku abstrak bebas daripada jenis. Juga menggunakan kaedah, kita boleh mengehadkan fungsi kepada jenis tertentu dan bekerja dengan pelbagai data dan jenis data dengan cara yang lebih langsung. Oleh itu, memahami konsep antara muka dan kaedah adalah asas penting untuk pengaturcaraan Golang.

Atas ialah kandungan terperinci antara muka dan kaedah 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