ホームページ >バックエンド開発 >Golang >golangの匿名関数の使い方

golangの匿名関数の使い方

PHPz
PHPzオリジナル
2024-04-29 10:36:011013ブラウズ

Go では匿名関数には名前がなく、パラメータとして他の関数に渡すことができます。使用法: 構文: func([パラメータ一覧]) ([戻り値一覧]) { // 関数本体 } パラメータと戻り値は省略可能です。他の関数に直接渡すことができます。実際のケース: リストを並べ替える場合、無名関数を使用して要素を比較できます。

golangの匿名関数の使い方

匿名関数の使用

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 関数に渡します。この関数は、匿名関数を使用して文字列のリストを並べ替えます。

匿名関数は Go では非常に便利で、コードをクリーンで読みやすくします。

以上がgolangの匿名関数の使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。