Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penutupan fungsi golang

Penutupan fungsi golang

WBOY
WBOYasal
2024-04-19 21:33:021019semak imbas

Penutupan ialah fungsi yang ditakrifkan dalam fungsi bersarang yang boleh mengakses pembolehubah dalam skop fungsi bersarang, termasuk pembolehubah selepas nilai pulangan dikembalikan. Ia digunakan untuk mencipta kod yang fleksibel dan boleh digunakan semula, seperti menjana istilah bagi jujukan Fibonacci: Tentukan fungsi penutupan yang menjana istilah Fibonacci. Fungsi penutupan menangkap dua pembolehubah untuk menyimpan dua sebutan pertama jujukan Fibonacci. Panggil fungsi penutupan untuk mengira dan mengembalikan istilah Fibonacci baharu secara bergilir-gilir. Fungsi penutupan boleh mengubah nilai pembolehubah yang ditangkap dari semasa ke semasa, dengan itu menjana istilah seterusnya dalam jujukan Fibonacci.

Penutupan fungsi golang

Penutupan dalam fungsi bahasa Go

Apakah penutupan itu?

Penutupan ialah fungsi yang ditakrifkan di dalam fungsi bersarang. Ia boleh mengakses pembolehubah dalam skop fungsi bersarang, walaupun jika fungsi bersarang telah kembali.

Contoh Kod:

func outer(multiplier int) func(x int) int {
    return func(x int) int {
        return multiplier * x
    }
}

func main() {
    doubler := outer(2)
    result := doubler(5)
    fmt.Println(result)  // 输出:10
}

Dalam contoh di atas, fungsi outer 返回了一个嵌套函数 func(x int) int。嵌套函数可以访问 outer 函数中的变量 multiplier,即使 outer telah kembali.

Contoh Praktikal:

Penutupan boleh digunakan untuk mencipta kod yang fleksibel dan boleh digunakan semula. Sebagai contoh, kita boleh menulis penutupan untuk menjana istilah jujukan Fibonacci:

func fibonacci() func() int {
    a, b := 0, 1
    return func() int {
        a, b = b, a+b
        return a
    }
}

func main() {
    f := fibonacci()
    for i := 0; i < 10; i++ {
        fmt.Println(f())  // 打印斐波那契序列的前 10 项
    }
}

Mata lain:

  • Penutupan menangkap nilai pembolehubah, bukan rujukan kepada pembolehubah.
  • Penutupan boleh mengubah nilai pembolehubah yang ditangkap dari semasa ke semasa.
  • Penutupan boleh meningkatkan kebolehbacaan kod, kebolehgunaan semula dan fleksibiliti.

Atas ialah kandungan terperinci Penutupan 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