ホームページ  >  記事  >  バックエンド開発  >  Golang の匿名関数とクロージャのコード例とベスト プラクティス分析

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

王林
王林オリジナル
2024-05-05 08:18:02370ブラウズ

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

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 サイトの他の関連記事を参照してください。

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