Go での埋め込み構造体の初期化
Go で埋め込み構造体を操作する場合、一般的なシナリオには内部の匿名構造体の初期化が含まれます。この記事では、このようなシナリオに対処し、2 つのアプローチを使用して初期化を実現する方法を明確に理解します。
次の埋め込み構造体 MyRequest について考えてみましょう。
type MyRequest struct { http.Request PathParams map[string]string }
MyRequest を初期化するには、次のように設定する必要があります。埋め込まれた http.Request 構造体の値。その方法は次のとおりです。
func New(origRequest *http.Request, pathParams map[string]string) *MyRequest { req := new(MyRequest) req.PathParams = pathParams req.Request = origRequest return req }
このアプローチでは、まず新しい MyRequest オブジェクトを作成し、それを req に割り当てます。次に、それに応じて PathParams フィールドを設定します。次に、req.Request を参照して、埋め込み http.Request 構造体にアクセスして設定します。
または、次の構文を使用して埋め込み構造体を初期化することもできます。
req := &MyRequest{ PathParams: pathParams Request: origRequest }
ここでは、必要なフィールドを含む匿名構造体を作成します。適切に初期化するには、埋め込み構造体の名前の前に「&」を付けることが重要です。これにより、必要な値を持つ MyRequest オブジェクトが生成されます。
どちらのアプローチでも、MyRequest 内に埋め込まれた http.Request 構造体を効果的に初期化し、必要に応じてカスタマイズして使用できるようになります。詳細については、埋め込み構造体の名前付きフィールドに関する Go 仕様を参照してください。
以上がGo で埋め込み構造体を初期化する方法: 2 つのアプローチ ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。