Latest web development tutorials

Pergi penutupan fungsi bahasa

Pergi penutupan fungsi bahasa

fungsi Go fungsi Go

Pergi dukungan bahasa fungsi anonim dapat digunakan sebagai penutupan. fungsi anonim adalah "inline" pernyataan atau ekspresi. Keunggulan fungsi anonim yang dapat menggunakan variabel dalam fungsi langsung, tanpa harus mendeklarasikan.

Contoh berikut, kita membuat fungsi getSequence (), mengembalikan fungsi lain. Tujuan dari fungsi ini meningkat dalam variabel penutupan i, sebagai berikut:

package main

import "fmt"

func getSequence() func() int {
   i:=0
   return func() int {
      i+=1
     return i  
   }
}

func main(){
   /* nextNumber 为一个函数,函数 i 为 0 */
   nextNumber := getSequence()  

   /* 调用 nextNumber 函数,i 变量自增 1 并返回 */
   fmt.Println(nextNumber())
   fmt.Println(nextNumber())
   fmt.Println(nextNumber())
   
   /* 创建新的函数 nextNumber1,并查看结果 */
   nextNumber1 := getSequence()  
   fmt.Println(nextNumber1())
   fmt.Println(nextNumber1())
}

Kode di atas dijalankan sebagai akibat dari:

1
2
3
1
2

fungsi Go fungsi Go