ホームページ > バックエンド開発 > Golang > Go ジェネリックスを使用したシングルトン パターン

Go ジェネリックスを使用したシングルトン パターン

WBOY
リリース: 2024-02-05 22:54:07
転載
782 人が閲覧しました

带有 Go 泛型的单例模式

質問の内容

golang でジェネリック変数のシングルトンを実装する最も最悪の方法を見つけようとしています。グローバル変数でプレーンな sync.once パターンを使用しても、共通の型情報が利用できないため機能しません (下記)。

この例は不自然ですが、実際には、シングルトンを維持するコードは、t (ライブラリなど) を定義するクライアント コードから分離できます。

次のライブラリ コードを想定しますが、t の具体的な値は不明です:

リーリー

そして、tstring として定義されているこの別のクライアント コードを想定します。 リーリー

これを達成するための最良の方法は何ですか?


正解


結局、

atomic.pointer APIを使用してこの問題を解決し、他の興味のある人が使用できるようにシンプルなライブラリに統合しました。 : 一行。シングレットを使用して元の投稿を再処理すると、次のようになります:

サンプル ライブラリ コード:

リーリー

クライアントコード:

リーリー

そして、この機能をサポートする

singlet ライブラリ コード: リーリー

これが、この状況に遭遇した他の人にとって役立つことを願っています。

以上がGo ジェネリックスを使用したシングルトン パターンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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