ホームページ >バックエンド開発 >Golang >Go で静的ローカル変数をシミュレートするにはどうすればよいですか?

Go で静的ローカル変数をシミュレートするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-21 16:35:09135ブラウズ

How Can I Simulate Static Local Variables in Go?

Go の静的ローカル変数

予約語 static を使用してローカル変数を静的にできる C とは異なり、Go はサポートしていません静的ローカル変数。ただし、クロージャを使用して同様の機能を実現する別の方法が提供されます。

Go のクロージャ

Go のクロージャは、その関数で定義された変数を参照する関数リテラルです。周囲の機能。これらの変数は周囲の関数とクロージャの間で共有され、周囲の関数が戻った後でもアクセス可能なままになります。

クロージャを使用して静的ローカル変数をシミュレートする

静的ローカル変数をシミュレートするにはGo の変数を使用すると、共有変数にアクセスする関数とクロージャを定義できます。例:

func main() {
    x := 1

    y := func() {
        fmt.Println("x:", x)
        x++
    }

この例では、x は main 関数で定義された変数、y は x を参照する関数リテラルです。ステートメント x は、y が呼び出されるたびに x の値をインクリメントします。

クロージャーを使用することにより、x は y の呼び出し間でその値を維持できます。この動作は、C での静的ローカル変数の使用に似ています。

注:

共有変数がグローバル スコープ内にある必要はありません。クロージャが定義されている関数の外側の任意のレベルで定義できます。

以上がGo で静的ローカル変数をシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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