ホームページ >バックエンド開発 >Golang >グローバル変数を使用せずに Go ハンドラーに引数を渡すにはどうすればよいですか?

グローバル変数を使用せずに Go ハンドラーに引数を渡すにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-12 17:01:021060ブラウズ

How Can I Pass Arguments to Go Handlers Without Using Global Variables?

Go ハンドラーに引数を渡す

Web 開発では、ハンドラーは受信した HTTP リクエストを処理し、応答を返す責任があります。デフォルトでは、人気のある Go ルーティング ライブラリである Gorilla Mux は、ハンドラーが http.ResponseWriter と *http.Request の 2 つのパラメーターを取る関数として定義されることを期待しています。

ただし、ハンドラーを渡す必要があるシナリオが発生する可能性があります。ハンドラーへの追加の引数 (データベース オブジェクトやその他の依存関係など)。グローバル変数は便利な解決策ですが、潜在的な問題を引き起こす可能性もあります。

グローバル変数の代替手段

ハンドラーに引数を渡すためにグローバル変数を使用しないようにするには、次のようにします。いくつかの回避策が利用可能です:

1.構造体ベースのハンドラー

データベース オブジェクトを埋め込み、ハンドラー関数を含むカスタム構造体を定義できます。この構造体のインスタンスを作成すると、適切なインスタンスを各ハンドラーに渡すことができます。

2.ラッパー関数

追加の引数を受け入れて実際のハンドラーを呼び出すラッパー関数を作成できます。

どちらのアプローチでも、引数を回避しながら Go ハンドラーに引数を渡す方法が提供されます。グローバル変数の使用。

以上がグローバル変数を使用せずに Go ハンドラーに引数を渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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