Latest web development tutorials

言語関数クロージャーを行きます

言語関数クロージャーを行きます

ゴー機能 ゴー機能

移動言語サポート匿名関数は、クロージャとして使用することができます。 匿名関数は、「インライン」文または式です。 宣言することなく、直接、関数内で変数を使用することができ優越無名関数。

次の例では、我々は機能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

ゴー機能 ゴー機能