Golang は静的にコンパイルされた言語であり、その構造は非常に便利なデータ型です。 Golang では、構造体を使用してエンティティのプロパティとメソッドを記述したり、さまざまな種類のデータを格納したり、他の構造体とネストして複雑なデータ構造を作成したりすることもできます。ただし、Golang で構造型を使用する場合、場合によっては構造型を変更する必要があります。この記事ではGolangで構造を変更する方法を紹介します。
1. 構造体の定義
Golang では、一連のフィールドを使用して構造体を定義できます。次のコードを使用して、2 つのフィールド (int 型と string 型の 1 つ) を含む構造体を定義できます。
type Person struct { Age int Name string }
この例では、Age と 2 つのフィールドを持つ person という構造体を定義します。名前。構造体フィールド名は大文字で始める必要があることに注意してください。これは、他のパッケージで使用するためにエクスポートできるようにするためです。
2. 構造の初期化
Golang では、次のコードを使用して構造を初期化できます:
p := Person{Age: 18, Name: "John"}
これにより、 p という名前の Person オブジェクトとその Age 属性が作成されます。は 18 で、その Name 属性は「John」です。
3. 構造へのアクセス
Golang では、次のコードを使用して構造内のフィールドにアクセスできます:
fmt.Println(p.Age) p.Age = 20
上記のコードは Age 属性を出力します。 p を 20 に変更します。
4. 構造メソッドの定義
構造の定義に加えて、構造に対するメソッドも定義できます。メソッドは、構造体のフィールドにアクセスし、構造体の値を読み取り、変更できる関数です。次のコードを使用して構造体メソッドを定義できます。
func (p *Person) SetAge(age int) { p.Age = age }
この例では、SetAge という構造体メソッドを定義します。これは、int 型のパラメータを受け入れ、それを構造体の Age フィールドに割り当てます。
5. 構造体の変更
Golang では、ドット演算子を使用して構造体のフィールドにアクセスしたり、次のようにして構造体のフィールドの値を変更したりできます。ポインタ。たとえば、次のコードは p の Age プロパティを出力し、それを 20 に変更します。
fmt.Println(p.Age) p.Age = 20
関数内の構造体の値を変更する場合は、ポインターを使用する必要があります。例:
func SetName(p *Person, name string) { p.Name = name } SetName(&p, "Jim")
この例では、 Person オブジェクトのポインターを SetName 関数に渡します。関数パラメータ p は Person オブジェクトへのポインタであり、ポインタを介して「Jim」に変更できます。
6. 構造のネスト
構造は他の構造内にネストできます。そうすることで、より複雑なデータ構造を作成できるようになります。例:
type Address struct { City string State string } type Family struct { Address Address Members []Person }
この例では、Family 構造を定義します。ここで、Address は、City と State の 2 つのフィールドを含むネストされた構造タイプです。 Family 構造には、複数の人物タイプを含むスライスも含まれています。
7. 構造の変更
ネストされた構造を変更するときは、ファミリー構造のアドレス構造など、フィールドと同様に構造にアクセスする必要があります:
func SetCity(f *Family, city string) { f.Address.City = city } SetCity(&f, "New York")
この例ではでは、Family 構造体に SetCity メソッドを定義します。このメソッドは Family オブジェクトへのポインターを受け取り、その Address.City フィールドを「New York」に設定します。
8. 構造のクローン
構造オブジェクトのクローンを作成する必要がある場合があります。この場合、次のメソッドを使用できます:
func Clone(p Person) Person { return p } c := Clone(p)
この例では、次のように定義しました。 Clone という名前の関数。この関数は person オブジェクトを受け取り、新しい person オブジェクトを返し、構造オブジェクトのコピーを正常に作成します。
9. 概要
Golang では、構造体を使用して複雑なデータ型を簡単に保存および操作できます。構造体の値を変更する必要がある場合は、ポインターを使用して構造体にアクセスし、変更できます。構造体は他の構造体をネストして、より複雑なデータ構造を作成できます。構造体のクローンを作成すると、新しい構造体オブジェクトを作成できるため、より便利です。
以上がgolangの構造変更の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。