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

函数用法描述
函数作为值函数定义后可作为值来使用
闭包闭包是匿名函数,可在动态编程中使用
方法方法就是一个包含了接受者的函数