Go では匿名関数には名前がなく、パラメータとして他の関数に渡すことができます。使用法: 構文: func([パラメータ一覧]) ([戻り値一覧]) { // 関数本体 } パラメータと戻り値は省略可能です。他の関数に直接渡すことができます。実際のケース: リストを並べ替える場合、無名関数を使用して要素を比較できます。
匿名関数の使用
Go 言語では、匿名関数は名前を持たない特別なタイプの関数です。通常は他の関数のパラメータとして使用されます。これらは、コールバック関数などの関数ポインターが使用される場所に表示されることがあります。
使用法
匿名関数の構文は次のとおりです:
func([参数列表]) ([返回值列表]) { // 函数体 }
where [パラメータ リスト]
および [戻り値リスト]
はオプションです。省略した場合、無名関数にはパラメータも戻り値もありません。
例
2 つの数値の合計を計算する無名関数を例として取り上げます。
sum := func(a, b int) int { return a + b }
無名関数を直接渡すこともできます。
otherFunction(func(i int) bool { return i % 2 == 0 })
この匿名関数 bool
関数は、整数が偶数かどうかをチェックします。
実践的なケース
文字列のリストを並べ替える例を考えてみましょう:
// 比较两个字符串的函数 compareStrings := func(a, b string) int { return strings.Compare(a, b) } // 使用 sort.Slice 对字符串列表进行排序 strings := []string{"apple", "banana", "cherry"} sort.Slice(strings, compareStrings) fmt.Print(strings) // [apple banana cherry]
上記のコードでは、匿名関数 # を宣言します。 ##compareStrings: 2 つの文字列を比較するために使用されます。次に、この関数を
sort.Slice 関数に渡します。この関数は、匿名関数を使用して文字列のリストを並べ替えます。
以上がgolangの匿名関数の使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。