Dalam bahasa Go, selepas mentakrifkan fungsi, kita boleh memanggil fungsi melalui "nama fungsi ()", sintaksnya ialah "senarai pembolehubah nilai pulangan = nama fungsi (senarai parameter)". Apabila "()" mengandungi berbilang parameter, pembolehubah parameter dipisahkan dengan koma dan tidak perlu diakhiri dengan koma bertitik dalam "senarai pembolehubah nilai pulangan", berbilang nilai pulangan dipisahkan dengan koma.
Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.
Fungsi membentuk struktur logik pelaksanaan kod Dalam bahasa Go, komponen asas fungsi ialah: fungsi kata kunci, nama fungsi, senarai parameter, nilai pulangan, badan fungsi dan pernyataan pulangan fungsi, dan fungsi ialah blok asas kod.
Oleh kerana bahasa Go ialah bahasa yang disusun, susunan fungsi ditulis adalah tidak relevan Memandangkan keperluan kebolehbacaan, adalah lebih baik untuk menulis fungsi main() di hadapan fail dan fungsi lain dalam susunan logik tertentu (cth. susunan fungsi dipanggil).
Tujuan utama menulis pelbagai fungsi adalah untuk menguraikan masalah kompleks yang memerlukan banyak baris kod menjadi satu siri tugasan mudah untuk diselesaikan. Selain itu, tugasan (fungsi) yang sama boleh dipanggil berbilang kali, yang membantu Penggunaan semula kod (sebenarnya, atur cara yang baik memberi perhatian yang besar kepada prinsip KERING, iaitu, Jangan Ulangi Sendiri (Jangan Ulangi Diri Sendiri), yang bermaksud bahawa kod yang melaksanakan tugas tertentu hanya boleh muncul sekali dalam atur cara) .
Fungsi akan keluar apabila ia mencapai baris terakhir blok kod }
atau sebelum pernyataan pulangan boleh mempunyai sifar atau lebih parameter, dan parameter ini akan digunakan sebagai nilai pulangan untuk pemanggil. Pernyataan pemulangan ringkas juga boleh digunakan untuk menamatkan gelung tak terhingga bagi, atau untuk menamatkan goroutine.
Terdapat tiga jenis fungsi dalam bahasa Go:
Pengisytiharan fungsi termasuk nama fungsi, senarai parameter formal, senarai nilai pulangan (boleh ditinggalkan) dan badan fungsi.
func 函数名(形式参数列表)(返回值列表){ 函数体 }
Senarai parameter formal menerangkan nama parameter dan jenis parameter fungsi Parameter ini digunakan sebagai pembolehubah setempat, dan nilainya disediakan oleh pemanggil parameter Senarai nilai pulangan nama pembolehubah dan jenis nilai pulangan fungsi Jika fungsi mengembalikan pembolehubah yang tidak dinamakan atau tidak mempunyai nilai pulangan, kurungan dalam senarai nilai pulangan boleh ditinggalkan.
Selepas fungsi ditakrifkan, ia boleh dipanggil untuk membenarkan kod semasa melompat ke fungsi yang dipanggil untuk pelaksanaan Lokasi fungsi sebelum panggilan Pembolehubah akan disimpan dan tidak akan hilang Selepas fungsi yang dipanggil selesai berjalan, ia akan meneruskan ke baris seterusnya fungsi panggilan dan terus melaksanakan kod Pembolehubah tempatan sebelumnya juga boleh terus diakses.
Pembolehubah setempat dalam fungsi hanya boleh digunakan dalam badan fungsi Selepas panggilan fungsi selesai, pembolehubah setempat ini akan dikeluarkan dan tidak sah.
Format panggilan fungsi bahasa Go adalah seperti berikut:
返回值变量列表 := 函数名(参数列表)
Berikut ialah penerangan bagi setiap bahagian:
Sebagai contoh, gaya panggilan fungsi penambahan adalah seperti berikut:
result := add(1,1)
Bahasa Go menyokong berbilang nilai pulangan, berbilang Nilai pulangan dengan mudah boleh mendapatkan berbilang parameter pulangan selepas pelaksanaan fungsi Bahasa Go sering menggunakan parameter pulangan terakhir dalam berbilang nilai pulangan untuk mengembalikan ralat yang mungkin berlaku semasa pelaksanaan fungsi.
conn, err := connectToNetwork()
在这段代码中,connectToNetwork 返回两个参数,conn 表示连接对象,err 返回错误信息。
Go语言既支持安全指针,也支持多返回值,因此在使用函数进行逻辑编写时更为方便。
如果返回值是同一种类型,则用括号将多个返回值类型括起来,用逗号分隔每个返回值的类型。
使用 return 语句返回时,值列表的顺序需要与函数声明的返回值类型一致,示例代码如下:
func typedTwoValues() (int, int) { return 1, 2 } func main() { a, b := typedTwoValues() fmt.Println(a, b) }
代码输出结果:
1 2
纯类型的返回值对于代码可读性不是很友好,特别是在同类型的返回值出现时,无法区分每个返回参数的意义。
Go语言支持对返回值进行命名,这样返回值就和参数一样拥有参数变量名和类型。
命名的返回值变量的默认值为类型的默认值,即数值为 0,字符串为空字符串,布尔为 false、指针为 nil 等。
下面代码中的函数拥有两个整型返回值,函数声明时将返回值命名为 a 和 b,因此可以在函数体中直接对函数返回值进行赋值,在命名的返回值方式的函数体中,在函数结束前需要显式地使用 return 语句进行返回,代码如下:
func namedRetValues() (a, b int) { a = 1 b = 2 return }
代码说明如下:
func namedRetValues() (a, b int) { a = 1 return a, 2 }
同一种类型返回值和命名返回值两种形式只能二选一,混用时将会发生编译错误,例如下面的代码:
func namedRetValues() (a, b int, int)
编译报错提示:
mixed named and unnamed function parameters
意思是:在函数参数中混合使用了命名和非命名参数。
【相关推荐:Go视频教程】
Atas ialah kandungan terperinci Apakah kaedah memanggil fungsi dalam bahasa Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!