ホームページ  >  記事  >  バックエンド開発  >  Go で埋め込み構造体を初期化する方法: 2 つのアプローチ ガイド

Go で埋め込み構造体を初期化する方法: 2 つのアプローチ ガイド

Susan Sarandon
Susan Sarandonオリジナル
2024-11-17 15:44:02309ブラウズ

How to Initialize an Embedded Struct in Go: A Two-Approach Guide

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

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