Dalam beberapa tahun kebelakangan ini, Golang (bahasa Go) telah menjadi semakin popular di kalangan pembangun dan telah menjadi bahasa pembangunan pilihan bagi banyak syarikat Internet. Golang menyediakan mekanisme bahasa pengaturcaraan yang mudah dan berkesan serta menyokong konsep antara muka. Di Golang, antara muka adalah konsep yang sangat penting, dan ia juga merupakan bahagian yang perlu dikuasai oleh pembangun.
Artikel ini akan menerangkan "antara muka" Golang dari aspek berikut, termasuk mata pengetahuan seperti mentakrif dan melaksanakan antara muka, sarang antara muka, gabungan antara muka dan jenis tersuai untuk melaksanakan antara muka.
Sangat mudah untuk mentakrifkan antara muka, hanya gunakan kata kunci interface
, contohnya:
type Animal interface { Eat() Sleep() }
Kod di atas mentakrifkan Animal
Antara muka, antara muka ini mempunyai dua kaedah Eat()
dan Sleep()
.
Pelaksanaan antara muka adalah bersamaan dengan kelas yang melaksanakan semua kaedah dalam antara muka. Di Golang, kelas hanya perlu melaksanakan semua kaedah yang diisytiharkan dalam antara muka untuk dianggap sebagai pelaksanaan antara muka. Contohnya:
type Cat struct { Name string } func (c Cat) Eat() { fmt.Printf("%s is eating.\n", c.Name) } func (c Cat) Sleep() { fmt.Printf("%s is sleeping.\n", c.Name) }
Dalam kod di atas, kelas Cat
ditakrifkan dan semua kaedah dalam antara muka Animal
dilaksanakan. Jika anda kini mencipta contoh Cat
dan menggunakannya sebagai Animal
, ia akan berfungsi dengan baik. Contohnya:
var animal Animal animal = Cat{"Tom"} animal.Eat() animal.Sleep()
Dalam kod di atas, contoh struktur Cat
diberikan kepada Animal
, dan kemudian antara muka dilaksanakan dengan memanggil kaedah Eat()
dan Sleep()
.
Di Golang, antara muka boleh disarang dalam antara muka lain, contohnya:
type Cat interface { Eat() Sleep() } type Animal interface { Cat Run() }
Dalam kod di atas, antara muka Animal
bersarangCat
antara muka. Ini bermakna antara muka Animal
kini mempunyai kaedah Eat()
dan Sleep()
, serta kaedah Run()
.
Apabila kita perlu menggunakan berbilang antara muka, kita boleh melakukannya melalui gabungan antara muka. Contohnya:
type Bird interface { Fly() Swim() } type Animal interface { Eat() Sleep() } type Creature interface { Animal Bird }
Dalam kod di atas, tiga antara muka ditakrifkan: Bird
, Animal
dan Creature
. Antaranya, Creature
menggabungkan dua antara muka Animal
dan Bird
. Memandangkan antara muka Creature
mewarisi dua antara muka Animal
dan Bird
, ia juga mempunyai semua kaedah kedua-dua antara muka ini.
Di Golang, selain struktur yang boleh melaksanakan antara muka, jenis tersuai juga boleh melaksanakan antara muka. Contohnya:
type MyInt int func (m MyInt) Eat() { fmt.Println("Eating", m) } func (m MyInt) Sleep() { fmt.Println("Sleeping", m) }
Dalam kod di atas, jenis MyInt
ditakrifkan dan kaedah Animal
dan Eat()
dalam antara muka Sleep()
dilaksanakan. Jika anda mencipta contoh MyInt
sekarang dan menggunakannya sebagai Animal
, ia juga akan berfungsi seperti biasa:
var animal Animal animal = MyInt(10) animal.Eat() animal.Sleep()
Setakat ini, kita telah bercakap tentang definisi dan pelaksanaan antara muka dalam Golang , bersarang, gabungan dan antara muka pelaksanaan jenis tersuai dan mata pengetahuan lain. Sebagai konsep pengaturcaraan yang penting, antara muka juga sangat penting di Golang. Menguasai pengetahuan tentang antara muka boleh membantu kami menggunakan bahasa pengaturcaraan Golang dengan lebih baik untuk membangunkan aplikasi.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan antara muka dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!