Java では、匿名の内部クラスを使用して関数をパラメータとして渡すことができますが、これは面倒な場合があります。 Go は、関数型とクロージャを使用して、これに対してより直接的なアプローチを提供します。
整数を受け取り、文字列値を返す変換関数型を実装する次の Go コードを考えてみましょう。
type convert func(int) string
value 関数は、整数の文字列表現を返すことで変換型を満たします。
func value(x int) string { return fmt.Sprintf("%v", x) }
quote123 関数は次の値を使用します。 123 を文字列に変換し、結果を引用符で囲む変換関数:
func quote123(fn convert) string { return fmt.Sprintf("%q", fn(123)) }
メイン関数では、変換関数は、匿名関数を含む変換型のさまざまな実装で使用されます:
result := quote123(func(x int) string { return fmt.Sprintf("%b", x) })
変換型は型の安全性を保証し、それに渡されるすべての関数が変換型を実装することを要求します。これにより、コードの正確性が維持され、型エラーが防止されます。
以上がGo はどのようにして関数をパラメータとして渡すことができるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。