Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penggunaan biasa fungsi Golang

Penggunaan biasa fungsi Golang

PHPz
PHPzasal
2023-04-25 15:11:26642semak imbas

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]

4. Fungsi bersarang dalam fungsi

Dalam bahasa Go, fungsi boleh diisytiharkan dan ditakrifkan dalam fungsi lain. Contohnya:

func outer(x, y int) int {
    square := func(x int) int {
        return x * x
    }

    return square(x) + square(y)
}
Dalam fungsi ini, kami mentakrifkan fungsi bernama

, 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

5. Berfungsi sebagai nilai pulangan

Dalam bahasa Go, fungsi boleh digunakan sebagai nilai pulangan. Contohnya:

func adder() func(int) int {
    sum := 0
    return func(x int) int {
        sum += x
        return sum
    }
}
Dalam fungsi ini, kami mentakrifkan fungsi bernama

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

Contohnya:

add := adder() // 返回一个函数
fmt.Println(add(1)) // 输出 1
fmt.Println(add(2)) // 输出 3
fmt.Println(add(3)) // 输出 6
Dalam contoh ini, kita mula-mula memanggil fungsi

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

6. tangguh pernyataan

Dalam bahasa Go, kita boleh menggunakan pernyataan

untuk melakukan beberapa kerja pembersihan selepas pelaksanaan fungsi selesai. Contohnya: defer

func f() {
    defer fmt.Println("Done.")
    fmt.Println("Working.")
}

f() // 输出 "Working." 和 "Done."
Dalam contoh ini, kami mentakrifkan fungsi bernama

, 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. deferdeferSelain itu, pernyataan

mempunyai beberapa kegunaan yang lebih maju, seperti menggunakannya dalam operasi membaca dan menulis fail, yang boleh memastikan bahawa pemegang fail ditutup dengan betul pada penghujung pelaksanaan fungsi.

deferRingkasan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn