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] }
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 }
Kami juga boleh mentakrifkan berbilang kaedah dalam antara muka, contohnya:
type Shape interface { Area() float64 Perimeter() float64 }
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()) }
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{}
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) }
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!