Rumah > Artikel > pembangunan bahagian belakang > Apakah keperluan untuk parameter formal golang?
Parameter fungsi dalam bahasa Go ialah parameter formal, yang merupakan pembolehubah setempat, dan nilainya disediakan oleh pemanggil parameter jika jenis parameter formal bersebelahan adalah sama, jenis yang pertama beberapa parameter boleh ditinggalkan, anda hanya perlu menulis jenis parameter terakhir, sintaks "func funcName(parameter formal 1, parameter formal 2 jenis parameter 1, parameter formal 3, parameter formal 4 jenis parameter 2, ...) (senarai nilai pulangan) { / /Laksanakan kenyataan...kembali senarai nilai pulangan}".
Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.
Parameter fungsi bahasa Go
Parameter fungsi dalam bahasa Go ialah parameter formal, iaitu, jika kita melepasi nilai , parameter yang diluluskan sebenarnya adalah salinan parameter sebenar, bukan parameter sebenar sebenar. Parameter formal ialah pembolehubah tempatan yang nilainya disediakan oleh pemanggil parameter.
Dalam bahasa Go, jika beberapa parameter fungsi bersebelahan mempunyai jenis yang sama, maka kita boleh meninggalkan jenis beberapa parameter pertama dan hanya perlu menulis jenis parameter terakhir.
func funcName(param1, param2 paramType1, param3, param4 paramType2, ...)(returnVal returnType){ // 执行语句... return 返回值列表 }
Penjelasan
Parameter param1 dan parameter param2 mempunyai jenis yang sama, maka kita boleh meninggalkan jenis parameter selepas param1 dan secara langsung Tulis jenis selepas param2.
Parameter param3 dan parameter param4 mempunyai jenis yang sama, jadi kita boleh meninggalkan jenis parameter selepas param3 dan menulis jenis terus selepas param4.
returnVal returnType
ialah senarai nilai pulangan, menerangkan nama pembolehubah dan jenis nilai pulangan fungsi Jika fungsi mengembalikan pembolehubah yang tidak dinamakan atau tiada nilai pulangan, kurungan dalam pemulangan senarai nilai boleh diabaikan.
Sarung
Gunakan fungsi untuk mencari pembahagi sepunya terbesar bagi dua nombor
package main import ( "fmt" ) func gcdNormal(x, y int) int { var n int if x > y { n = y } else { n = x } for i := n; i >= 1; i-- { if x%i == 0 && y%i == 0 { return i } } return 1 } func main() { //用函数,实现计算两个数的最大公约数 gcd := gcdNormal(10,20) fmt.Println("Gcd =", gcd) }
Selepas program dijalankan, output konsol adalah seperti berikut:
Kami mentakrifkan fungsi gcdNormal, menghantar dua parameter jenis int a dan b , fungsi mengembalikan pembolehubah jenis int. Fungsi ini menggunakan kaedah menyeluruh untuk melaksanakan logik mencari pembahagi sepunya terbesar bagi parameter a dan parameter b Oleh kerana jenis parameter a dan parameter b adalah kedua-dua jenis int, kami meninggalkan jenis selepas parameter a dan menulisnya terus dalam parameter. b.
Dalam fungsi main(), kami memanggil fungsi gcdNormal dan lulus dalam dua parameter 10 dan 20, menggunakan pembolehubah gcd untuk menerima nilai yang dikembalikan oleh fungsi gcdNormal, dan akhirnya menggunakan fungsi Println() untuk mencetak keputusan akhir.
Parameter fungsi ialah parameter formal
Parameter fungsi dalam bahasa Go ialah parameter formal dan pengubahsuaian pada parameter fungsi tidak akan menjejaskan parameter sebenar
package main import ( "fmt" ) func change(a int) { a += 100 } func main() { //Go语言的函数参数是函数参数,对函数参数的修改不会影响实参 a := 10 change(a) fmt.Println("a =", a) }
Selepas program dijalankan, output konsol adalah seperti berikut:
Kami mentakrifkan perubahan fungsi(), menghantar parameter jenis int a , dalam badan fungsi, tambah 100 pada parameter fungsi ini.
Dalam fungsi main(), panggil fungsi ini dan masukkan pembolehubah a Selepas melaksanakan fungsi change(), kami mencetak nilai pembolehubah a sekali lagi dan mendapati bahawa nilai a masih 10. , bukan 100. 110 selepas itu.
Oleh kerana dalam bahasa Go, parameter fungsi adalah parameter formal, iaitu salinan parameter sebenar, jadi apa yang diubah suai bukanlah parameter sebenar, jadi nilai a tidak akan berubah.
Ubah suai parameter sebenar melalui parameter fungsi
Untuk mengubah suai parameter sebenar melalui parameter fungsi dalam fungsi bahasa Go, anda mesti menggunakan jenis penunjuk
package main import ( "fmt" ) func change(a *int) { *a += 100 } func main() { //Go语言的函数要通过函数参数修改实参,必须要使用指针类型 a := 10 change(&a) fmt.Println("a =", a) }
Kami mentakrifkan perubahan fungsi(), menghantar parameter a jenis penunjuk int, dan dalam badan fungsi, tambah 100 pada parameter fungsi.
Dalam fungsi main(), panggil fungsi ini dan masukkan alamat pembolehubah a Selepas melaksanakan fungsi change(), kami mencetak nilai pembolehubah a sekali lagi dan mendapati bahawa nilai a telah meningkat sebanyak 100. Ia menjadi 110.
Fungsi change() di sini melepasi alamat a Kemudian kami menggunakan operator penunjuk dalam fungsi change() untuk mendapatkan pembolehubah ditunjuk oleh alamat a, dan kemudian mengubah suai nilainya hakikatnya, pengubahsuaian adalah nilai pembolehubah a itu sendiri.
Ringkasan parameter fungsi bahasa Go
Parameter fungsi dalam bahasa Go ialah parameter formal, iaitu, jika kita melepasi nilai, Parameter sebenarnya adalah salinan parameter sebenar, bukan parameter sebenar sebenar.
Dalam bahasa Go, jika beberapa parameter fungsi bersebelahan mempunyai jenis yang sama, maka kita boleh meninggalkan jenis beberapa parameter pertama dan hanya perlu menulis jenis parameter terakhir.
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Video Pengaturcaraan! !
Atas ialah kandungan terperinci Apakah keperluan untuk parameter formal golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!