関数ポインタは、関数のメモリ アドレスを指す Go の変数で、値の型などの関数を処理できるようにします。パラメータとして渡されると、動的な動作が提供されます。 関数ポインタの型を定義します: func(*TypeName)ReturnType 関数ポインタをパラメータとして関数に渡し、関数ポインタに基づいてさまざまな関数を実装します (たとえば、比較関数による並べ替えなど) )
#関数ポインタは Go のパラメータとして渡されます
関数ポインタについて
Go では、関数ポインターは関数を指す変数です。これは本質的には関数のメモリ アドレスへのポインタです。関数ポインターを使用すると、関数を他の値型と同じように扱うことができます。関数ポインタの構文
関数ポインタの型は次の構文で定義されます:func(*TypeName)ReturnTypeたとえば、次のコードはint 型パラメータを受け取るポインタ そして int 値を持つ関数へのポインタを返します。
type fnType func(int) int
パラメータとしての関数ポインタ
関数ポインタはパラメータとして渡すことができます他の機能の。これにより、関数にさまざまな動作を動的に提供できるようになります。実際のケース: ソート関数
整数のセットをソートする必要があるシナリオを考えてみましょう。整数のスライスと関数ポインタを引数として受け取るsortInts という関数を定義できます。関数ポインタは、整数の比較と並べ替えに使用される関数を指定します。
func sortInts(nums []int, compareFn fnType) { // 根据 compareFn 函数排序 nums }main 関数で
sortInts を呼び出し、さまざまな比較関数を渡して、整数スライスを異なる方法で並べ替えることができます。
func main() { nums := []int{5, 2, 8, 3, 1} // 升序排序 sortInts(nums, func(a, b int) int { return a - b }) fmt.Println(nums) // [1 2 3 5 8] // 降序排序 sortInts(nums, func(a, b int) int { return b - a }) fmt.Println(nums) // [8 5 3 2 1] }
結論
関数ポインタは Go の強力なツールであり、動的で再利用可能なコードを作成できます。関数ポインターの構文と関数ポインターを引数として渡すメカニズムを理解することで、複雑な動作やアルゴリズムを簡単に実装できます。以上がパラメータとして渡される golang 関数ポインタの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。