penggunaan antara muka golang

PHPz
Lepaskan: 2023-05-19 12:00:37
asal
670 orang telah melayarinya

Bahasa Go ialah bahasa yang ditaip secara statik dengan sistem jenis kaya. Antara muka ialah jenis unik dalam bahasa Go dan bahagian pentingnya. Dalam artikel ini, kami akan memperkenalkan penggunaan antara muka golang secara terperinci, termasuk definisi, pelaksanaan, penggunaan, dsb.

1 Tentukan antara muka

Antara muka ialah satu set kaedah yang boleh dilaksanakan antara jenis yang berbeza. Digunakan untuk menerangkan tingkah laku abstrak. Dalam bahasa Go, anda boleh menggunakan jenis dan kata kunci antara muka untuk menentukan antara muka.

Apabila menggunakan kata kunci jenis untuk mentakrifkan antara muka, format sintaks adalah seperti berikut:

type interface_name interface {
    method_name1 [return_type]
    method_name2 [return_type]
    …
    method_namen [return_type]
}
Salin selepas log masuk

Dalam takrifan di atas, interface_name ialah nama antara muka, method_namen ialah nama kaedah bagi antara muka, dan return_type ialah pulangan bagi jenis Nilai Jika tiada nilai pulangan, anda tidak perlu mengisi bahagian ini.

Berikut ialah contoh yang mentakrifkan antara muka bernama Shape, yang termasuk kaedah bernama Area:

type Shape interface {
    Area() float64
}
Salin selepas log masuk

Kami juga boleh mentakrifkan berbilang kaedah dalam antara muka, contohnya:

type Shape interface {
    Area() float64
    Perimeter() float64
}
Salin selepas log masuk

2. Laksanakan antara muka

Dalam bahasa Go, pelaksanaan antara muka adalah tersirat Selagi sesuatu jenis mempunyai semua kaedah ditakrifkan dalam antara muka, maka jenis ini melaksanakan antara muka secara automatik. Pendekatan ini berbeza daripada pelaksanaan eksplisit dalam bahasa lain dan unik untuk bahasa Go.

Berikut ialah contoh pelaksanaan antara muka Bentuk, mentakrifkan dua jenis: Segi Empat dan Bulatan. Kodnya adalah seperti berikut:

package main

import (
    "fmt"
    "math"
)

type Shape interface {
    Area() float64
}

type Rectangle struct {
    width, height float64
}

type Circle struct {
    radius float64
}

func (r Rectangle) Area() float64 {
    return r.width * r.height
}

func (c Circle) Area() float64 {
    return math.Pi * c.radius * c.radius
}

func main() {
    var s Shape
    r := Rectangle{width: 5, height: 3}
    c := Circle{radius: 2.5}

    s = r
    fmt.Println("Rectangle area:", s.Area())

    s = c
    fmt.Println("Circle area:", s.Area())
}
Salin selepas log masuk

Dalam kod di atas, jenis Rectangle dan Circle masing-masing melaksanakan kaedah Area dalam antara muka Shape. Dalam fungsi utama, kami mencipta pembolehubah jenis Shape dan menetapkannya kepada contoh jenis Rectangle dan Circle masing-masing. Kita boleh mengira luas kedua-dua jenis ini dengan memanggil kaedah s.Area(). Dalam bahasa Go, cara menggunakan antara muka ini sangat fleksibel dan boleh melaksanakan corak pengaturcaraan dengan mudah seperti polimorfisme dan suntikan kebergantungan.

3. Antara muka Kosong

Dalam bahasa Go, semua jenis melaksanakan antara muka yang dipanggil antara muka kosong, yang ditakrifkan seperti berikut:

type interface{}
Salin selepas log masuk

Antara muka kosong tidak mempunyai sebarang kaedah , jadi ia boleh digunakan untuk mewakili sebarang jenis, serupa dengan jenis Objek dalam bahasa lain. Dengan menggunakan antara muka kosong, pengaturcaraan yang sangat fleksibel boleh dicapai, seperti menyimpan sebarang jenis nilai dalam kepingan.

Berikut ialah contoh menggunakan antara muka kosong, yang mentakrifkan fungsi PrintAll yang boleh mencetak elemen dalam sebarang jenis kepingan:

package main

import (
    "fmt"
)

func PrintAll(slice []interface{}) {
    for _, value := range slice {
        fmt.Println(value)
    }
}

func main() {
    var slice []interface{}
    slice = append(slice, 42, "hello", true)

    PrintAll(slice)
}
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan fungsi The bernama PrintAll menerima kepingan parameter jenis []antara muka{}. Fungsi ini melingkari elemen dalam kepingan dan mencetaknya. Dalam fungsi utama, kami mencipta hirisan, menambah elemen jenis int, rentetan dan bool padanya dan hantar ke fungsi PrintAll. Dengan menggunakan antara muka kosong, kami boleh melaksanakan apa-apa jenis penghantaran dan panggilan elemen.

4. Ringkasan

Dalam artikel ini, kami memperkenalkan definisi, pelaksanaan dan penggunaan antara muka dalam bahasa Go. Sebagai salah satu ciri penting bahasa Go, antara muka boleh mencapai fleksibiliti dan skalabiliti kod. Apabila menggunakan antara muka, anda perlu memberi perhatian kepada butiran seperti pelaksanaannya dan padanan jenis. Pada masa yang sama, kami juga memperkenalkan penggunaan antara muka kosong dan menerangkan kepentingan dan peranannya dalam pengaturcaraan bahasa Go.

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