Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan kaedah antara muka di Golang

Bagaimana untuk melaksanakan kaedah antara muka di Golang

PHPz
PHPzasal
2023-04-03 09:19:141689semak imbas

Bahasa Go menyediakan mekanisme antara muka, yang merupakan cara penting untuk penggunaan semula kod dan pengaturcaraan berorientasikan objek. Dalam Go, jenis antara muka ialah koleksi tandatangan untuk satu set kaedah. Nilai jenis antara muka boleh menyimpan sebarang nilai yang melaksanakan kaedah ini.

Dalam bahasa Go, antara muka ialah bekas yang digunakan untuk menyimpan dan memindahkan koleksi kaedah. Antara muka boleh memisahkan kod ke tahap yang tinggi, meningkatkan fleksibiliti dan skalabiliti kod. Reka bentuk antara muka ialah bahagian yang sangat penting dalam bahasa Go. Pemahaman mendalam tentang kaedah pelaksanaan antara muka adalah penting untuk menulis kod Go yang berkualiti tinggi.

Seterusnya kami akan memperkenalkan pelaksanaan kaedah antara muka di Golang.

1. Definisi antara muka dalam Golang

Bahasa Go menetapkan dalam definisi antara muka bahawa antara muka terdiri daripada koleksi kaedah. Kita boleh mentakrifkan antara muka dengan mentakrifkan satu set kaedah pada jenis antara muka:

jenis antara mukaNama antara muka {
kaedah_1 (param1 jenis1, param2 jenis2) return_jenis
kaedah_2 (param1 jenis1, param2 jenis2) pulangan_jenis

method_n (param1 type1, param2 type2) return_type
}

Kaedah yang ditetapkan dalam definisi antara muka boleh terdiri daripada satu atau lebih kaedah. Setiap kaedah mentakrifkan operasi dan menentukan parameter dan jenis pengembalian operasi. Pengumpulan kaedah antara muka biasanya diterangkan dengan ulasan ringkas. Jika antara muka mengandungi hanya satu kaedah, maka antara muka dipanggil jenis fungsi.

2. Pelaksanaan antara muka dalam Golang

Dalam bahasa Go, untuk melaksanakan antara muka anda hanya perlu melaksanakan semua kaedah dalam antara muka. Maksudnya, apabila sesuatu jenis mentakrifkan semua kaedah yang terkandung dalam antara muka, jenis itu secara automatik melaksanakan antara muka. Memandangkan tiada sintaks pelaksanaan eksplisit dalam bahasa Go, set antara muka yang dilaksanakan mengikut jenis ditentukan secara automatik mengikut jenis.

taip antara muka InterfaceObject {
Func1() int
Func2() float64
}

taip Impl1 struct {
Property1 int
}

func (impl Impl1) Func1() int {
return impl.Property1
}

func (impl Impl1) Func2() float64{
return float64(impl.Property1) / 0.618
}

func main() {
impl1 := Impl1{Property1:100}
var intf InterfaceObject = impl1
fmt.Printf("%dn", intf .Func1())
fmt.Printf("%.2fn", intf.Func2())
}

Untuk pelaksanaan antara muka dalam bahasa go, jenis antara muka tertentu dilaksanakan Iaitu, jenis data antara muka dilaksanakan, dan nilai objek jenis ini boleh diberikan kepada objek antara muka.

3. Polimorfisme antara muka di Golang

Di Golang, setiap pembolehubah jenis yang melaksanakan antara muka dipanggil objek antara muka. Jenis pembolehubah ialah nama antara muka, dan nilai pembolehubah ialah contoh antara muka. Contoh atau penunjuk jenis boleh diberikan kepada pembolehubah antara muka. Apabila anda perlu mengakses kaedah dalam objek antara muka, program akan menggunakan nama antara muka sebagai nama kaedah dalam antara muka dan bukannya menggunakan jenis tertentu.

taip antara muka InterfaceObject {

Func1() int

}

taip Impl1 struct {

Property1 int

}

func (impl Impl1 ) Func1() int {

return impl.Property1

}

func main() {

impl1 := Impl1{Property1:100}
var intf InterfaceObject = impl1
fmt.Printf("%d\n", intf.Func1())

}

Untuk polimorfisme antara muka Golang, kita boleh lihat bahawa apabila mencipta objek antara muka, jenis impl1 ditukar secara automatik kepada nilai jenis InterfaceObject, dan kaedah Func1() InterfaceObject boleh dipanggil.

4. Sarang antara muka di Golang

Dalam bahasa Go, sarang antara muka ialah mekanisme untuk menggabungkan jenis antara muka. Antara muka bersarang menggabungkan kaedah berbilang antara muka supaya jenis tertentu dapat memenuhi keperluan kaedah antara muka ini pada masa yang sama.

taip antara muka Laci {

Draw() string

}

taip antara muka Closer {

Close() bool

}

taip antara muka FileHandler {

Drawer
Closer

}

func main() {

fh := FileHandler{}
fmt.Print(fh.Draw())  //输出为空字符串
fmt.Print(fh.Close()) //输出false

}

Dalam kod di atas, tiga antara muka Laci dan Tutup dan Pengendali Fail, Drawer dan Closer ialah dua antara muka mudah, dan FileHandler mempunyai dua antara muka, Drawer dan Closer, bersarang di dalamnya. Dengan menggabungkan antara muka, kami boleh menentukan jenis antara muka yang lebih kompleks dan menjadikan pelaksanaan lebih fleksibel dan boleh diperluaskan.

Ringkasan

Dalam bahasa Go, antara muka ialah alat pengaturcaraan yang sangat berkuasa dan penting. Melalui pelaksanaan antara muka, penggunaan semula kod, fleksibiliti dan skalabiliti boleh dicapai dengan lebih baik, yang sangat biasa dalam pembangunan sebenar. Dari segi teknikal, polimorfisme, komposisi, corak reka bentuk, dll. boleh dicapai melalui penggunaan antara muka Oleh itu, kajian mendalam tentang penggunaan antara muka bahasa Go dan pelaksanaan kaedah adalah penting untuk menulis kod Go berkualiti tinggi

.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kaedah antara muka di 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