Go では、匿名関数とクロージャは関数を操作するための強力なツールであり、ベスト プラクティスに従うことでコードの品質を向上させることができます。匿名関数は単純にし、外部変数のキャプチャを避け、変数パラメーターを使用する必要があります。クロージャは自由変数のキャプチャを制限し、多数の自由変数がキャプチャされる場合は、名前付き関数を使用して可読性を向上させることができます。
Golang では、匿名関数とクロージャは関数を操作する際の強力なツールです。ベスト プラクティスに従うと、コードの可読性、保守性、パフォーマンスが向上します。
匿名関数は名前のない関数であり、通常はコールバックまたは 1 回限りの操作として使用されます。
ベスト プラクティスを使用する:
...
を使用して残りの引数をすべてキャプチャすると、柔軟性が得られます。 実際的なケース:
以下の匿名関数は、ファイルの行数を ioutil.ReadDir
関数に渡します:
import ( "fmt" "io/ioutil" ) func main() { numLines := func(path string) int { bytes, err := ioutil.ReadFile(path) if err != nil { return 0 } return len(bytes) } entries, _ := ioutil.ReadDir(".") for _, entry := range entries { fmt.Println(numLines(entry.Name())) } }
クロージャーは、自由変数 (関数の外で宣言されているが関数内でアクセスできる変数) を含む関数です。
ベスト プラクティスに従ってください:
実際的なケース:
次のクロージャは、count
変数を使用して関数呼び出しの数を追跡します:
func createCounter() func() int { count := 0 return func() int { count++ return count } } func main() { counter := createCounter() fmt.Println(counter()) // 1 fmt.Println(counter()) // 2 fmt.Println(counter()) // 3 }
以上がGolang の匿名関数とクロージャのベスト プラクティスの調査の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。