Latest web development tutorials

Allez les fermetures de fonction de la langue

Allez les fermetures de fonction de la langue

fonction Go fonction Go

Go soutien linguistique des fonctions anonymes peuvent être utilisées comme des fermetures. fonction Anonymous est une "inline" déclaration ou expression. Supériorité fonction anonyme qui peut utiliser la variable dans la fonction directement, sans avoir à déclarer.

L'exemple suivant, nous créons une fonction getSequence (), renvoie une autre fonction. Le but de cette fonction est croissante dans une variable de fermeture I, comme suit:

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

Le code ci-dessus est exécutée à la suite de:

1
2
3
1
2

fonction Go fonction Go