関数クロージャにパラメータを渡す
Go では、パラメータ付きの匿名関数を作成するかクロージャを作成するかの選択は、変数の共有とクロージャに影響を与える可能性があります。関数の動作。
パラメータとClosures
いつ使用するかパラメータ
いつ使用するかクロージャ
例: クロージャ vs.パラメータ
クロージャとクロージャの違いを示す次のコード例を考えてみましょう。パラメータ:
クロージャ:
for i := 0; i < 3; i++ { go func() { fmt.Println(i) }() }
パラメータer:
for i := 0; i < 3; i++ { go func(v int) { fmt.Println(v) }(i) }
結果:
結論
パラメータとクロージャの選択は、目的の動作と変数共有要件によって異なります。関数が値のスナップショットを必要とする場合は、パラメーターが優先されます。クロージャは、外側のスコープ内の変数にアクセスして変更する場合、または複数の呼び出し間で変数を共有する場合に便利です。
以上がGo におけるパラメータとクロージャ: いつどちらを使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。