Go ialah bahasa pengaturcaraan baharu yang cekap dan mudah digunakan. Penggunaan fungsinya juga sangat fleksibel Artikel ini akan memperkenalkan secara terperinci penggunaan dan langkah berjaga-jaga bagi fungsi Golang.
1. Pengisytiharan fungsi
Apabila mengisytiharkan fungsi dalam bahasa Go, anda perlu menentukan nama fungsi, parameter dan nilai pulangan. Format asas fungsi adalah seperti berikut:
func 函数名 (参数1, 参数2, ...) (返回值1, 返回值2, ...) { // 函数体 }
Antaranya, nama fungsi mengikut konvensyen penamaan pengecam. Parameter fungsi boleh terdiri daripada sebarang jenis, atau ia tidak boleh mempunyai parameter. Nilai pulangan boleh dari apa-apa jenis, atau tidak boleh ada nilai pulangan.
Sebagai contoh, berikut ialah pengisytiharan fungsi mudah:
func add(x int, y int) int { return x + y }
Dalam fungsi ini, kami mengisytiharkan fungsi bernama add
yang mempunyai dua parameter jenis integer x
dan y
, nilai pulangan ialah jumlahnya.
2. Berbilang fungsi nilai pulangan
Bahasa Go menyokong berbilang fungsi nilai pulangan. Contohnya:
func divmod(a, b int) (int, int) { return a / b, a % b }
Dalam fungsi ini, kami mengisytiharkan dua parameter jenis integer a
dan b
, dan mengembalikan dua nilai jenis integer, iaitu pembahagian dan modulus masing-masing.
3. Berfungsi sebagai parameter
Dalam bahasa Go, fungsi boleh dihantar sebagai parameter kepada fungsi lain. Contohnya:
func apply(nums []int, f func(int) int) []int { result := []int{} for _, v := range nums { result = append(result, f(v)) } return result }
Dalam fungsi ini, kami mengisytiharkan fungsi bernama apply
, yang mempunyai dua parameter, satu ialah kepingan jenis integer nums
dan satu lagi ialah fungsi f
, fungsi ini mengambil parameter integer sebagai input dan mengembalikan hasil integer. Fungsi apply
menghantar setiap elemen dalam kepingan nums
untuk berfungsi f
dan mengembalikan hasil setiap pelaksanaan fungsi yang disimpan dalam kepingan baharu.
Sebagai contoh:
func square(x int) int { return x * x } result := apply([]int{1, 2, 3, 4}, square) // [1, 4, 9, 16]
Dalam contoh ini kita mentakrifkan fungsi square
yang memadatkan integer dan memotong integer menggunakan fungsi apply
Setiap integer digunakan pada fungsi {1, 2, 3, 4}
, dan anda akan mendapat kepingan baharu square
sebagai hasilnya. [1, 4, 9, 16]
func outer(x, y int) int { square := func(x int) int { return x * x } return square(x) + square(y) }
, yang mempunyai dua parameter jenis integer outer
dan x
. Fungsi y
mengisytiharkan dan mentakrifkan fungsi tanpa nama outer
yang menduakan integer. Kemudian, fungsi square
melepasi kedua-dua parameter outer
dan x
untuk berfungsi y
dan menambah hasilnya semula. square
func adder() func(int) int { sum := 0 return func(x int) int { sum += x return sum } }
yang tidak menerima sebarang parameter dan mengembalikan fungsi. Fungsi yang dikembalikan juga menerima hujah jenis integer dan mengembalikan hasil jenis integer. Di dalam fungsi adder
, kami mentakrifkan pembolehubah jenis integer adder
dan mengembalikan fungsi tanpa nama yang menambah parameter sum
kepada x
dan mengembalikan nilai baharu sum
. sum
add := adder() // 返回一个函数 fmt.Println(add(1)) // 输出 1 fmt.Println(add(2)) // 输出 3 fmt.Println(add(3)) // 输出 6
untuk mendapatkan fungsi baharu adder()
, dan kemudian menggunakan fungsi add
tiga kali, lulus setiap kali Nilai jenis integer, yang akhirnya menjadi add
. 1+2+3=6
untuk melakukan beberapa kerja pembersihan selepas pelaksanaan fungsi selesai. Contohnya: defer
func f() { defer fmt.Println("Done.") fmt.Println("Working.") } f() // 输出 "Working." 和 "Done."
, yang mengandungi dua pernyataan. Pernyataan pertama mencetak "Bekerja." dan pernyataan kedua mencetak "Selesai." Disebabkan kehadiran kata kunci f
, pernyataan kedua akan dikeluarkan selepas pelaksanaan fungsi selesai. defer
defer
Selain itu, pernyataan
defer
Ringkasan
Artikel ini memperkenalkan penggunaan biasa dan langkah berjaga-jaga bagi fungsi Golang, termasuk pengisytiharan fungsi, fungsi nilai pulangan berbilang, fungsi sebagai parameter, fungsi bersarang dalam fungsi dan berfungsi sebagai nilai pulangan dan penangguhan kenyataan. Menggunakan petua ini, anda boleh menulis program Go yang lebih ringkas, elegan dan cekap.
Atas ialah kandungan terperinci Penggunaan biasa fungsi Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!