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

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

Mary-Kate Olsen
リリース: 2024-12-21 16:35:09
オリジナル
133 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート