Latest web development tutorials

Idź zamknięć funkcji języka

Idź zamknięć funkcji języka

funkcja Go funkcja Go

Idź obsługa wielu języków funkcje anonimowe mogą być stosowane jako zamknięcia. Funkcja Anonymous jest "inline" oświadczenie lub wyrażenie. Wyższość anonimowa funkcja, która może użyć zmiennej wewnątrz funkcji bezpośrednio, bez konieczności zadeklarować.

W poniższym przykładzie, tworzymy getSequence function (), zwraca inną funkcję. Celem tej funkcji jest zwiększenie w zmiennej i zamknięcia, co następuje:

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())
}

Powyższy kod jest wykonywany w wyniku:

1
2
3
1
2

funkcja Go funkcja Go