ホームページ > バックエンド開発 > Golang > Go で静的なローカル変数の永続性を実現するにはどうすればよいですか?

Go で静的なローカル変数の永続性を実現するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-11 12:00:19
オリジナル
847 人が閲覧しました

How Can I Achieve Static-like Local Variable Persistence in Go?

Go でのローカル変数の状態の保持: 静的なアプローチ

C とは異なり、Go には組み込みの "static" キーワードがありません関数呼び出し全体で値を保持するローカル変数を定義します。幸いなことに、Go にはクロージャというエレガントな代替手段があります。

クロージャ: 状態を保持する鍵

Go の関数リテラルはクロージャです。関数リテラルが、囲んでいる関数内で定義された変数を参照すると、それらの変数は共有され、関数の外部からアクセスできるようになります。重要なのは、クロージャがスコープ内にある限り、これらの変数は存続することです。

例: クロージャによる状態の保持

ここでは、クロージャを使用して静的な機能を実現する方法を示します。 Closure:

func main() {
    x := 1

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

    for i := 0; i < 10; i++ {
        y()
    }
}
ログイン後にコピー

この例では、変数 x は y 関数定義の外で宣言されていますが、関数定義内でアクセスできます。閉鎖。 y を呼び出すたびに x がインクリメントされ、クロージャの有効期間のおかげで変数は呼び出し間でその状態を保持します。

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

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