golangの構造変更

WBOY
リリース: 2023-05-13 11:22:37
オリジナル
801 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート