言語関数クロージャーを行きます
言語関数クロージャーを行きます
移動言語サポート匿名関数は、クロージャとして使用することができます。 匿名関数は、「インライン」文または式です。 宣言することなく、直接、関数内で変数を使用することができ優越無名関数。
次の例では、我々は機能getSequenceを作成する()、別の関数を返します。 次のようにこの機能の目的は、クロージャ変数iに増加しています:
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()) }
上記のコードは、の結果として実行されます。
1 2 3 1 2