Bagaimana untuk melaksanakan kaedah antara muka di Golang

PHPz
Lepaskan: 2023-04-03 10:16:59
asal
1741 orang telah melayarinya

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
Salin selepas log masuk

}

taip Impl1 struct {

Property1 int
Salin selepas log masuk

}

func (impl Impl1 ) Func1() int {

return impl.Property1
Salin selepas log masuk

}

func main() {

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

}

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
Salin selepas log masuk

}

taip antara muka Closer {

Close() bool
Salin selepas log masuk

}

taip antara muka FileHandler {

Drawer
Closer
Salin selepas log masuk

}

func main() {

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

}

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!