初期化方法: 1. 「ins := 構造型名 {フィールド 1: 値、フィールド 2: 値、...}」ステートメントを使用して初期化します。これは、多くのフィールドを含む構造体を選択的に埋めるのに適しています。 ; 2. 「ins := 構造型名 {フィールド 1 の値, フィールド 2 の値,...}」ステートメントを使用して初期化します。これは、フィールドの数が少ない構造に適しています。
このチュートリアルの動作環境: Windows 10 システム、GO 1.11.2、Dell G3 コンピューター。
構造体はインスタンス化時にメンバー変数を直接初期化することができます。初期化にはフィールド「キーと値のペア」形式と複数の値のリスト形式の 2 つの形式があります。キーと値の形式での初期化ペアが適しています。より多くのフィールドを含む構造を選択的に埋めます。複数の値のリスト形式は、フィールドが少ない構造に適しています。
「キー値ペア」を使用して構造体を初期化します
構造体は「キー値ペア」(キー値ペア) を使用して初期化できます各「キー」(Key)は構造体のフィールドに対応し、キーの「値」(Value)はフィールドを初期化する必要がある値に対応します。
キーと値のペアの入力はオプションであり、初期化を必要としないフィールドは初期化リストに入力する必要はありません。
構造体がインスタンス化された後のフィールドのデフォルト値は、フィールド タイプのデフォルト値です。たとえば、値は 0、文字列は "" (空の文字列)、ブール値は false、ポインタが nil など。
1) キーと値のペアの初期化構造体の記述形式
キーと値のペアの初期化の形式は次のとおりです:
ins := 结构体类型名{ 字段1: 字段1的值, 字段2: 字段2的值, … }
以下は各部の説明です。 説明:
構造体の型:構造体を定義する際の型名です。
フィールド 1、フィールド 2: 構造体メンバーのフィールド名。フィールド名は、構造体型名のフィールド初期化リストに 1 回だけ出現できます。
フィールド 1 の値、フィールド 2 の値: 構造体メンバー フィールドの初期値。
キー値は :
で区切られ、キー値のペアは ,
で区切られます。
2) キーと値のペアを使用して構造を埋める例
次の例は、童謡のように、家族内の登場人物間の関係を示しています。 「お父さんのお父さんは「おじいちゃん」です。マルチレベルの子を使用して、文字間の関係を記述および確立できます。キーと値のペアの形式で構造を埋めるコードは次のとおりです。
type People struct { name string child *People } relation := &People{ name: "爷爷", child: &People{ name: "爸爸", child: &People{ name: "我", }, }, }
コード説明は次のとおりです。
行 1 は People 構造を定義します。
行 2、構造体の文字列フィールド。
行 3、構造体の構造体ポインター フィールド、タイプは *People です。
6 行目、リレーションが People タイプからアドレスを取得した後、タイプ *People のインスタンスが形成されます。
8 行目、子を初期化するときに *People 型の値が必要で、そのアドレスを使用して People を初期化します。
ヒント: 構造体のメンバーには、構造体のポインター型のみを含めることができます。非ポインター型を含めるとコンパイル エラーが発生します。
複数の値のリストを使用して構造を初期化する
Go 言語は、「キー」に基づいて「キー」を無視できます。 -value ペア」の初期化、つまり、複数の値のリストを使用して構造体のフィールドを初期化できます。
1) 複数値リストの初期化構造体の記述形式
初期化構造体内で複数の値を区切るにはカンマを使用します。例:
ins := 结构体类型名{ 字段1的值, 字段2的值, … }
Use この形式を初期化するときは、次の点に注意してください:
構造体のすべてのフィールドを初期化する必要があります。
各初期値の入力順序は、構造内のフィールドの宣言順序と一致している必要があります。
キーと値のペアと値リストの初期化形式を混合することはできません。
2) 複数値リストの初期化構造体の例
次の例はアドレス構造体を示しており、アドレスは特定の順序、例:
type Address struct { Province string City string ZipCode int PhoneNumber string } addr := Address{ "四川", "成都", 610000, "0", } fmt.Println(addr)
コードを実行すると、出力は次のようになります:
{四川 成都 610000 0}
推奨学習: Golang チュートリアル
以上がGo言語で構造体のメンバー変数を初期化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。