Golang の匿名関数とクロージャのコード例とベスト プラクティス分析

王林
リリース: 2024-05-05 08:18:02
オリジナル
369 人が閲覧しました

匿名関数: 匿名関数は、ワンタイム関数またはコールバックの作成に使用される名前のない関数です。クロージャ: クロージャには、外部変数にアクセスして変更できる匿名関数と外部変数参照が含まれています。

Golang の匿名関数とクロージャのコード例とベスト プラクティス分析

Go 言語の匿名関数とクロージャ

匿名関数とは何ですか?

匿名関数は名前のない関数であり、通常は 1 回限りの使用関数またはコールバックを作成するために使用されます。

匿名関数の構文を宣言します:

func(参数列表)(返回值列表) { 函数体 }
ログイン後にコピー

例:

数値のリストを二乗する:

numbers := []int{1, 2, 3, 4, 5}
result := map(func(n int) int { return n * n }, numbers)
ログイン後にコピー

クロージャとは何ですか?

クロージャは、匿名関数と外部変数参照を含む関数値です。これは、クロージャが外部変数にアクセスして変更できることを意味します。

クロージャ構文を作成します:

func(参数列表)(返回值列表) {
    // 内部定义的变量
    变量名 := 值
    return func(闭包参数列表)(闭包返回值列表) {
        // 可以访问和修改内部变量
    }
}
ログイン後にコピー

例:

指定された回数だけ繰り返される単語を返す関数を作成します。ページあたりの回数:

package main

import "fmt"

func makeRepeated(s string, n int) func() string {
    i := 0
    return func() string {
        i++
        return fmt.Sprintf("%s%d", s, i)
    }
}

func main() {
    repeat := makeRepeated("a", 5)
    fmt.Println(repeat())
    fmt.Println(repeat())
}
ログイン後にコピー

出力:

a1
a2
ログイン後にコピー

以上がGolang の匿名関数とクロージャのコード例とベスト プラクティス分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!