cari

Golang ialah bahasa pengaturcaraan berprestasi tinggi, ditaip kuat, berjalan pantas Ia menyokong idea pengaturcaraan berorientasikan objek dan mempunyai cara yang sangat fleksibel untuk menentukan fungsi dan kaedah. Artikel ini akan memperkenalkan secara terperinci definisi, penghantaran parameter, panggilan dan kaedah pelaksanaan biasa fungsi dan kaedah di Golang.

1. Definisi dan penggunaan fungsi

Sangat mudah untuk mentakrifkan fungsi dalam Golang adalah seperti berikut:

func 函数名(参数1 类型1, 参数2 类型2, …) 返回类型 {
    //函数体代码
    return 返回值
}

Di mana, 函数名 adalah. nama fungsi, 参数 ialah nilai input fungsi dan 返回类型 ialah jenis nilai output fungsi. Dalam kod badan fungsi, kita boleh melakukan apa sahaja yang kita mahu dan menggunakan kata kunci return untuk mengembalikan nilai yang ingin kita pulangkan.

Sebagai contoh, berikut adalah fungsi yang digunakan untuk mengira jumlah dua nombor:

func add(a int, b int) int {
    return a + b
}

Panggilan fungsi juga sangat mudah, cuma berikan nama fungsi dan parameter:

result := add(1, 2) //输出结果为3

2. Definisi dan penggunaan kaedah

Kaedah dalam Golang sangat serupa dengan fungsi, tetapi ia dikaitkan dengan jenis atau pembolehubah tertentu. Kaedah biasanya digunakan untuk mengubah suai atau mengembalikan sifat struktur, antara muka atau jenis lain. Sintaks asas kaedah adalah seperti berikut:

func (t 类型) 方法名(参数 参数类型) 返回类型 {
    //方法体代码
    return 返回值
}

di mana (t 类型) menunjukkan bahawa kaedah itu dikaitkan dengan jenis t. Dalam kod badan kaedah, kita boleh mengakses sifat dan kaedah jenis melalui t. Sama seperti fungsi, kaedah juga boleh mentakrifkan penerima, iaitu contoh yang kaedah itu akan dilampirkan.

Sebagai contoh, berikut ialah jenis segi empat tepat bernama Rect, yang mempunyai kaedah Area yang mengira luas segi empat tepat:

type Rect struct {
    width, height int
}

func (r Rect) Area() int {
    return r.width * r.height
}

Dalam contoh ini, kami mentakrifkan A jenis segi empat tepat bernama Rect yang mempunyai sifat width dan height. Kami juga mentakrifkan kaedah yang dipanggil Area yang menggunakan sifat segi empat tepat untuk mengira luas. Oleh kerana kami menggunakan jenis segi empat tepat sebagai penerima, kami boleh memanggil kaedah Area melalui contohnya:

r := Rect{width: 10, height: 5}
result := r.Area()    //输出结果为50

3. Penggunaan parameter berubah

Di Golang, anda boleh menggunakan ... (tiga titik) mentakrifkan parameter pembolehubah. Ini bermakna fungsi atau kaedah boleh mengambil sebarang bilangan parameter. Sebagai contoh, berikut ialah fungsi yang mengandungi argumen variadic:

func sum(nums ...int) int {
    result := 0
    for _, num := range nums {
        result += num
    }
    return result
}

Fungsi ini menerima argumen variadic bernama nums, yang jenis int. Kita boleh memanggil fungsi ini dengan menghantar sebarang bilangan integer kepada parameter ini:

result1 := sum(1, 2, 3, 4) //输出结果为10
result2 := sum(10, 20, 30) //输出结果为60

4. Penggunaan penutupan

Penutupan dalam Golang bermakna fungsi boleh mengakses definisi di luarnya Pembolehubah masih wujud walaupun selepas fungsi kembali. Ini kerana fungsi dalam Golang adalah fungsi kelas pertama dan boleh diluluskan dan digunakan seperti pembolehubah. Contohnya, berikut ialah contoh ringkas penutupan:

func intSeq() func() int {
    i := 0
    return func() int {
        i++
        return i
    }
}

nextInt := intSeq()
fmt.Println(nextInt()) //输出结果为1
fmt.Println(nextInt()) //输出结果为2

Dalam contoh ini, kami mencipta fungsi intSeq yang mengembalikan fungsi. Fungsi ini mentakrifkan pembolehubah i yang merupakan sebahagian daripada penutupan. Fungsi yang dikembalikan juga merupakan penutupan, ia boleh mengakses i dan menambahnya. Kami mengambil fungsi daripada intSeq, memanggilnya nextInt dan menggunakannya untuk mendapatkan dua integer.

5. Penggunaan antara muka

Di Golang, antara muka ialah pengisytiharan set kaedah, yang mentakrifkan kelakuan sesetengah objek. Tidak seperti bahasa pengaturcaraan seperti Java dan C#, antara muka dalam Golang adalah tersirat: jika sesuatu jenis mentakrifkan semua kaedah dalam antara muka, jenis itu melaksanakan antara muka secara automatik tanpa memerlukan perisytiharan implements yang jelas. Sebagai contoh, berikut ialah contoh antara muka dan pelaksanaan antara muka:

type Shape interface {
    Area() float64
    Perimeter() float64
}

type Rect struct {
    width float64
    height float64
}

func (r Rect) Area() float64 {
    return r.width * r.height
}

func (r Rect) Perimeter() float64 {
    return 2 * (r.width + r.height)
}

Dalam contoh ini, kami mentakrifkan antara muka bernama Shape dan dua kaedah untuknya: Area dan Perimeter. Kami juga mentakrifkan jenis segi empat tepat bernama Rect dan melaksanakan dua kaedah antara muka Shape. Ini bermakna jenis Rect melaksanakan antara muka Shape secara automatik.

Akhir sekali, kita boleh mencipta pembolehubah jenis Shape antara muka dan memberikannya nilai jenis Rect. Dalam kes ini, kita boleh memanggil kaedah Shape dan Area antara muka Perimeter:

var s Shape
s = Rect{width: 10, height: 5}
fmt.Println(s.Area())       //输出结果为50
fmt.Println(s.Perimeter())  //输出结果为30 

Secara ringkasnya, fungsi dan kaedah dalam Golang mempunyai takrifan dan pelaksanaan yang sangat fleksibel. Kita boleh menulis atur cara yang lebih berkuasa dan fleksibel dengan menggunakan ciri seperti hujah variadic, penutupan dan antara muka.

Atas ialah kandungan terperinci kaedah fungsi 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
Memilih Antara Golang dan Python: Yang sesuai untuk projek andaMemilih Antara Golang dan Python: Yang sesuai untuk projek andaApr 19, 2025 am 12:21 AM

Golangisidealforperformance-CriticalApplicationsandCurrentProgramming, pemprosesDataSincience.2) forhigh-thoRencurrencyFiSurs.2 fordata -dataSdataS.2

Golang: Konvensyen dan prestasi dalam tindakanGolang: Konvensyen dan prestasi dalam tindakanApr 19, 2025 am 12:20 AM

Golang mencapai kesesuaian yang cekap melalui goroutine dan saluran: 1.Goroutine adalah benang ringan, bermula dengan kata kunci Go; 2. Channel digunakan untuk komunikasi yang selamat antara goroutin untuk mengelakkan keadaan kaum; 3. Contoh penggunaan menunjukkan penggunaan asas dan lanjutan; 4. Kesilapan umum termasuk kebuntuan dan persaingan data, yang dapat dikesan oleh Gorun-Race; 5. Pengoptimuman prestasi mencadangkan mengurangkan penggunaan saluran, dengan munasabah menetapkan bilangan goroutine, dan menggunakan sync.pool untuk menguruskan memori.

Golang vs Python: Bahasa mana yang harus anda pelajari?Golang vs Python: Bahasa mana yang harus anda pelajari?Apr 19, 2025 am 12:20 AM

Golang lebih sesuai untuk pengaturcaraan sistem dan aplikasi konvensional yang tinggi, manakala Python lebih sesuai untuk sains data dan perkembangan pesat. 1) Golang dibangunkan oleh Google, menaip secara statik, menekankan kesederhanaan dan kecekapan, dan sesuai untuk senario konvensional yang tinggi. 2) Python dicipta oleh Guidovan Rossum, sintaks yang dinamik, sintaks ringkas, aplikasi yang luas, sesuai untuk pemula dan pemprosesan data.

Golang vs Python: Prestasi dan SkalaGolang vs Python: Prestasi dan SkalaApr 19, 2025 am 12:18 AM

Golang lebih baik daripada Python dari segi prestasi dan skalabiliti. 1) Ciri-ciri jenis kompilasi Golang dan model konkurensi yang cekap menjadikannya berfungsi dengan baik dalam senario konvensional yang tinggi. 2) Python, sebagai bahasa yang ditafsirkan, melaksanakan perlahan -lahan, tetapi dapat mengoptimumkan prestasi melalui alat seperti Cython.

Golang vs Bahasa Lain: PerbandinganGolang vs Bahasa Lain: PerbandinganApr 19, 2025 am 12:11 AM

GO Language mempunyai kelebihan yang unik dalam pengaturcaraan serentak, prestasi, lengkung pembelajaran, dan lain -lain: 1 Pengaturcaraan serentak direalisasikan melalui goroutine dan saluran, yang ringan dan cekap. 2. Kelajuan penyusunan adalah pantas dan prestasi operasi hampir dengan bahasa C. 3. Tatabahasa adalah ringkas, lengkung pembelajaran lancar, dan ekosistemnya kaya.

Golang dan Python: Memahami PerbezaanGolang dan Python: Memahami PerbezaanApr 18, 2025 am 12:21 AM

Perbezaan utama antara Golang dan Python adalah model konvensional, sistem jenis, prestasi dan kelajuan pelaksanaan. 1. Golang menggunakan model CSP, yang sesuai untuk tugas serentak yang tinggi; Python bergantung pada multi-threading dan gil, yang sesuai untuk tugas I/O-intensif. 2. Golang adalah jenis statik, dan Python adalah jenis dinamik. 3. Golang mengumpulkan kelajuan pelaksanaan bahasa adalah cepat, dan pembangunan bahasa yang ditafsirkan Python adalah pantas.

Golang vs C: Menilai perbezaan kelajuanGolang vs C: Menilai perbezaan kelajuanApr 18, 2025 am 12:20 AM

Golang biasanya lebih perlahan daripada C, tetapi Golang mempunyai lebih banyak kelebihan dalam pengaturcaraan serentak dan kecekapan pembangunan: 1) Koleksi sampah Golang dan model konkurensi menjadikannya berfungsi dengan baik dalam senario konvensyen yang tinggi; 2) C memperoleh prestasi yang lebih tinggi melalui pengurusan memori manual dan pengoptimuman perkakasan, tetapi mempunyai kerumitan pembangunan yang lebih tinggi.

Golang: bahasa utama untuk pengkomputeran awan dan devOpsGolang: bahasa utama untuk pengkomputeran awan dan devOpsApr 18, 2025 am 12:18 AM

Golang digunakan secara meluas dalam pengkomputeran awan dan devOps, dan kelebihannya terletak pada kesederhanaan, kecekapan dan keupayaan pengaturcaraan serentak. 1) Dalam pengkomputeran awan, Golang dengan cekap mengendalikan permintaan serentak melalui mekanisme goroutine dan saluran. 2) Di DevOps, kompilasi cepat Golang dan ciri-ciri silang platform menjadikannya pilihan pertama untuk alat automasi.

See all articles

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.

Alat panas

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft