Fungsi bahasa Go
Fungsi ialah blok asas kod yang melaksanakan tugas.
Bahasa Go mempunyai sekurang-kurangnya fungsi main().
Anda boleh membahagikan fungsi yang berbeza melalui fungsi Secara logiknya, setiap fungsi menjalankan tugas tertentu.
Pengisytiharan fungsi memberitahu pengkompil nama, jenis pulangan dan parameter fungsi.
Pustaka standard bahasa Go menyediakan pelbagai fungsi terbina dalam yang boleh digunakan. Sebagai contoh, fungsi len() boleh menerima hujah pelbagai jenis dan mengembalikan panjang jenis tersebut. Jika kita lulus dalam rentetan, panjang rentetan dikembalikan Jika kita lulus dalam nombor, bilangan fungsi yang terkandung dalam tatasusunan dikembalikan.
Takrifan fungsi
Format definisi fungsi bahasa Go adalah seperti berikut:
func function_name( [parameter list] ) [return_types] { 函数体 }
Analisis definisi fungsi:
fungsi : Pengisytiharan fungsi bermula daripada func
function_name: nama fungsi, nama fungsi dan senarai parameter bersama-sama membentuk tandatangan fungsi.
senarai parameter]: Senarai parameter, parameter adalah seperti pemegang tempat, apabila fungsi dipanggil, anda boleh menghantar nilai kepada parameter, nilai ini dipanggil parameter sebenar. Senarai parameter menentukan jenis parameter, susunan dan bilangan parameter. Parameter adalah pilihan, yang bermaksud bahawa fungsi itu juga tidak boleh mengandungi parameter.
return_types: jenis return, fungsi mengembalikan senarai nilai. return_types ialah jenis data nilai lajur. Sesetengah fungsi tidak memerlukan nilai pulangan, di mana return_types tidak diperlukan.
Ibu fungsi: koleksi kod untuk definisi fungsi.
Contoh
Contoh berikut ialah kod fungsi max() Fungsi ini melepasi dua parameter integer num1 dan num2 dan mengembalikan nilai maksimum kedua-dua parameter ini. . Nilai:
/* 函数返回两个数的最大值 */ func max(num1, num2 int) int { /* 声明局部变量 */ var result int if (num1 > num2) { result = num1 } else { result = num2 } return result }
Panggilan fungsi
Apabila anda mencipta fungsi, anda menentukan perkara yang perlu dilakukan oleh fungsi tersebut dan anda melaksanakan tugas yang ditentukan dengan memanggil fungsi tersebut.
Panggil fungsi, hantar parameter kepada fungsi dan kembalikan nilai, sebagai contoh:
package main import "fmt" func main() { /* 定义局部变量 */ var a int = 100 var b int = 200 var ret int /* 调用函数并返回最大值 */ ret = max(a, b) fmt.Printf( "最大值是 : %d\n", ret ) } /* 函数返回两个数的最大值 */ func max(num1, num2 int) int { /* 定义局部变量 */ var result int if (num1 > num2) { result = num1 } else { result = num2 } return result }
Contoh di atas memanggil fungsi max() dalam fungsi main() dan pelaksanaan hasilnya ialah:
最大值是 : 200
Fungsi mengembalikan berbilang nilai
Fungsi Go boleh mengembalikan berbilang nilai, contohnya:
package main import "fmt" func swap(x, y string) (string, string) { return y, x } func main() { a, b := swap("Mahesh", "Kumar") fmt.Println(a, b) }
Hasil pelaksanaan contoh di atas ialah:
Kumar Mahesh
Parameter fungsi
Jika fungsi menggunakan parameter, pembolehubah boleh dipanggil parameter formal fungsi.
Parameter formal adalah seperti pembolehubah tempatan yang ditakrifkan dalam badan fungsi.
Apabila memanggil fungsi, parameter boleh dihantar dalam dua cara:
传递类型 | 描述 |
---|---|
值传递 | 值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。 |
引用传递 | 引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。 |
Secara lalai, bahasa Go menggunakan hantaran nilai, iaitu, parameter sebenar tidak akan terjejas semasa panggilan.
Penggunaan fungsi
函数用法 | 描述 |
---|---|
函数作为值 | 函数定义后可作为值来使用 |
闭包 | 闭包是匿名函数,可在动态编程中使用 |
方法 | 方法就是一个包含了接受者的函数 |