Allez les fermetures de fonction de la langue
Allez les fermetures de fonction de la langue
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