Jadual Kandungan
Antara muka dan kaedah Golang
Antaramuka dalam Golang
Kaedah dalam Golang
Sarang antara muka dan penegasan jenis
Ringkasan
Rumah pembangunan bahagian belakang Golang antara muka dan kaedah golang

antara muka dan kaedah golang

May 10, 2023 am 10:54 AM

Antara muka dan kaedah Golang

Golang (atau Go) ialah bahasa pengaturcaraan sumber terbuka yang dibangunkan oleh Google. Ia menyediakan pengalaman pengaturcaraan yang cekap melalui model konkurensi yang unik dan pengumpul sampah. Antara muka dan kaedah di Golang adalah salah satu konsep terasnya dan sangat penting untuk menguasai bahasa pengaturcaraan Golang.

Antaramuka dalam Golang

Antaramuka ialah satu cara untuk mencapai polimorfisme. Ia mentakrifkan satu set spesifikasi untuk kod program, ia dipanggil jenis antara muka. Mereka mentakrifkan satu set kaedah tetapi tidak menyediakan pelaksanaan. Walaupun tanpa mengisytiharkan jenis antara muka tertentu secara eksplisit, program Go masih boleh menyemak sama ada sesuatu jenis memenuhi keperluan antara muka tertentu.

Di Golang, antara muka adalah sangat penting. Jika anda ingin menggunakan Golang, maka anda mesti memahami definisi dan pelaksanaan antara muka Golang. Berikut ialah beberapa contoh takrifan antara muka Golang:

package main

import "fmt"

type Interface1 interface {
    method1() string
}

type Interface2 interface {
    method2() int
}

type Interface3 interface {
    Interface1
    Interface2
    method3() bool
}

type Struct1 struct {
    name string
}

type Struct2 struct {
    age int
}

func (s1 *Struct1) method1() string {
    return s1.name
}

func (s2 *Struct2) method2() int {
    return s2.age
}

func (s3 *Struct1) method3() bool {
    return true
}

func main() {
    s1 := Struct1{name: "John"}
    s2 := Struct2{age: 30}

    var iInterface1 Interface1 = &s1
    var iInterface2 Interface2 = &s2
    var iInterface3 Interface3 = &s3

    fmt.Println(iInterface1.method1())
    fmt.Println(iInterface2.method2())
    fmt.Println(iInterface3.method3())
}
Salin selepas log masuk

Dalam contoh ini, kami telah mentakrifkan 3 antara muka, iaitu Interface1, Interface2 dan Interface3. Di mana Interface3 mewarisi Interface1 dan Interface2. Kami juga menentukan dua struktur Struct1 dan Struct2 dan melaksanakan kaedah antara muka yang sepadan untuk mereka. Dalam fungsi main(), kami menggunakan antara muka ini untuk memanggil kaedahnya.

Kaedah dalam Golang

Kaedah ialah fungsi yang dikaitkan dengan jenis tertentu yang boleh mengakses data jenis tersebut. Di Golang, kaedah ialah cara mengehadkan fungsi kepada jenis tertentu. Mereka boleh digunakan untuk mewakili jenis tingkah laku yang boleh dipanggil oleh objek lain. Kaedah boleh menjadi kaedah nilai atau kaedah penunjuk, bergantung pada sama ada ia mengubah suai nilai penerima.

Berikut ialah contoh definisi kaedah di Golang:

package main

import "fmt"

type Struct1 struct {
    name string
}

func (s1 Struct1) method1() string {
    return s1.name
}

func (s1 *Struct1) method2() {
    s1.name = "Jane"
}

func main() {
    s1 := Struct1{name: "John"}

    fmt.Println(s1.method1())

    s1.method2()
    fmt.Println(s1.method1())
}
Salin selepas log masuk

Dalam contoh ini, kami mentakrifkan jenis Struct1 dan dua kaedah method1() dan method2(). Ambil perhatian bahawa penerima method2() ialah penunjuk kepada struktur, jadi ia boleh mengubah suai nilai struktur. Dalam fungsi main(), kami mencipta objek Struct1 dan memanggil kedua-dua kaedah ini masing-masing.

Sarang antara muka dan penegasan jenis

Di Golang, antara muka juga boleh disarang seperti struktur. Sarang antara muka boleh digunakan untuk menggabungkan keupayaan berbilang antara muka. Golang juga menyediakan operator penegasan jenis untuk menukar antara muka kepada nilai jenis lain.

Berikut ialah contoh penegasan bersarang dan jenis penegasan antara muka Golang:

package main

import "fmt"

type Interface1 interface {
    method1() string
}

type Interface2 interface {
    method2() int
}

type Struct1 struct {
    name string
}

func (s1 *Struct1) method1() string {
    return s1.name
}

func (s1 *Struct1) method2() int {
    return len(s1.name)
}

func main() {
    s1 := Struct1{name: "John"}

    var iInterface1 Interface1 = &s1
    var iInterface2 Interface2 = iInterface1.(Interface2)

    fmt.Println(iInterface2.method2())
}
Salin selepas log masuk

Dalam contoh ini, kami mentakrifkan antara muka Interface1 dan Interface2 dan menyediakan struktur Struct1 The badan melaksanakan dua kaedah method1() dan method2(). Dalam fungsi main(), kami menghantar objek Struct1 ke antara muka Interface1 dan menghantarnya semula ke antara muka Interface2. Kemudian kami memanggil kaedah method2() dan mencetak hasilnya.

Ringkasan

Di Golang, antara muka dan kaedah ialah salah satu konsep yang paling penting. Mereka menyediakan pengalaman pengaturcaraan yang lebih cekap di Golang. Dengan menggunakan antara muka, kita boleh menyatakan tingkah laku abstrak bebas daripada jenis. Juga menggunakan kaedah, kita boleh mengehadkan fungsi kepada jenis tertentu dan bekerja dengan pelbagai data dan jenis data dengan cara yang lebih langsung. Oleh itu, memahami konsep antara muka dan kaedah adalah asas penting untuk pengaturcaraan Golang.

Atas ialah kandungan terperinci antara muka dan kaedah golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah kelemahan debian openssl Apakah kelemahan debian openssl Apr 02, 2025 am 07:30 AM

OpenSSL, sebagai perpustakaan sumber terbuka yang digunakan secara meluas dalam komunikasi yang selamat, menyediakan algoritma penyulitan, kunci dan fungsi pengurusan sijil. Walau bagaimanapun, terdapat beberapa kelemahan keselamatan yang diketahui dalam versi sejarahnya, yang sebahagiannya sangat berbahaya. Artikel ini akan memberi tumpuan kepada kelemahan umum dan langkah -langkah tindak balas untuk OpenSSL dalam sistem Debian. Debianopenssl yang dikenal pasti: OpenSSL telah mengalami beberapa kelemahan yang serius, seperti: Kerentanan Pendarahan Jantung (CVE-2014-0160): Kelemahan ini mempengaruhi OpenSSL 1.0.1 hingga 1.0.1f dan 1.0.2 hingga 1.0.2 versi beta. Penyerang boleh menggunakan kelemahan ini untuk maklumat sensitif baca yang tidak dibenarkan di pelayan, termasuk kunci penyulitan, dll.

Bagaimana anda menggunakan alat PPROF untuk menganalisis prestasi GO? Bagaimana anda menggunakan alat PPROF untuk menganalisis prestasi GO? Mar 21, 2025 pm 06:37 PM

Artikel ini menerangkan cara menggunakan alat PPROF untuk menganalisis prestasi GO, termasuk membolehkan profil, mengumpul data, dan mengenal pasti kesesakan biasa seperti CPU dan isu memori.

Bagaimana anda menulis ujian unit di GO? Bagaimana anda menulis ujian unit di GO? Mar 21, 2025 pm 06:34 PM

Artikel ini membincangkan ujian unit menulis di GO, meliputi amalan terbaik, teknik mengejek, dan alat untuk pengurusan ujian yang cekap.

Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Apr 02, 2025 pm 02:06 PM

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Bagaimana anda menggunakan ujian yang didorong oleh jadual di GO? Bagaimana anda menggunakan ujian yang didorong oleh jadual di GO? Mar 21, 2025 pm 06:35 PM

Artikel ini membincangkan menggunakan ujian yang didorong oleh jadual di GO, satu kaedah yang menggunakan jadual kes ujian untuk menguji fungsi dengan pelbagai input dan hasil. Ia menyoroti faedah seperti kebolehbacaan yang lebih baik, penurunan duplikasi, skalabiliti, konsistensi, dan a

Terangkan tujuan Pakej Refleksi Go. Bilakah anda akan menggunakan refleksi? Apakah implikasi prestasi? Terangkan tujuan Pakej Refleksi Go. Bilakah anda akan menggunakan refleksi? Apakah implikasi prestasi? Mar 25, 2025 am 11:17 AM

Artikel ini membincangkan pakej GO's Reflect, yang digunakan untuk manipulasi kod runtime, bermanfaat untuk siri, pengaturcaraan generik, dan banyak lagi. Ia memberi amaran tentang kos prestasi seperti pelaksanaan yang lebih perlahan dan penggunaan memori yang lebih tinggi, menasihati penggunaan yang bijak dan terbaik

Bagaimana anda menentukan kebergantungan dalam fail go.mod anda? Bagaimana anda menentukan kebergantungan dalam fail go.mod anda? Mar 27, 2025 pm 07:14 PM

Artikel ini membincangkan menguruskan kebergantungan modul Go melalui Go.Mod, meliputi spesifikasi, kemas kini, dan resolusi konflik. Ia menekankan amalan terbaik seperti versi semantik dan kemas kini biasa.

Apakah masalah dengan thread giliran di crawler colly go? Apakah masalah dengan thread giliran di crawler colly go? Apr 02, 2025 pm 02:09 PM

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

See all articles