Golang は非常に強力なプログラミング言語であり、構造はその重要な部分であり、オブジェクト指向プログラミングにおいて最も重要なデータ型の 1 つです。構造体を使用すると、プログラマは独自のデータ型を定義でき、さまざまな種類のデータを含めたり、複雑な構造を記述したりできます。 Golang では、構造体は値型であり、メソッドを含めることができるため、プログラマーに優れた柔軟性と利便性を提供します。この記事では、Golang の構造とそのアノテーションについて詳しく紹介します。
1. Golang 構造の定義と初期化
Golang 構造は、いくつかの関連データまたは関連データを表すことができるカスタム データ型です。構造定義では、以下に示すように、キーワード タイプを使用する必要があります。
type Person struct { Name string Age int }
上のコードは、人の名前と年齢をそれぞれ表す 2 つのフィールド Name と Age を含む Person という名前の構造を定義します。構造体のフィールドには、int、float、string、bool、array、slice、pointer などの任意の Golang データ型を使用できます。構造体のフィールド名は一意である必要があり、構造体内でフィールドを繰り返し定義することはできません。
構造体を初期化するには 2 つの方法があります:
person1 := Person{ Name: "Tom", Age: 20, }
上記のコードは構造リテラル A を直接使用します。人物オブジェクトは、Name フィールドの値が「Tom」、Age フィールドの値が 20 で作成されます。
person2 := new(Person) person2.Name = "Jack" person2.Age = 30
上記のコードは、新しいキーワードを使用して、パーソン構造体 person2 へのポインターを作成し、渡します。ポインターのフィールド割り当ては、構造体のメンバー変数を初期化するために使用されます。
2. Golang 構造のコメント
Golang では、コメントを使用してコードを説明したり、ドキュメントを提供したりできます。コメントはプログラムのロジックと設計の非常に重要な部分です。構造内にコメントを追加するには、いくつかの方法があります。
行コメントは二重スラッシュ (//) で表され、通常は 1 行のコードで使用されます。以下に示すように、後でコメントを追加します。
type Person struct { Name string // 姓名 Age int // 年龄 }
上記のコードは、Person 構造体の 2 つのフィールドにコメントを追加します。
ブロック コメントは / と / で表され、通常、コードの前後にコメントを追加するために使用されます。以下に示すように:
/* Person 结构体表示人的基本信息 包含姓名和年龄两个字段 */ type Person struct { Name string // 姓名 Age int // 年龄 }
上記のコードは、ブロック コメントを通じて Person 構造を説明します。
コード ドキュメント コメントは、以下に示すように、コードにエクスポート可能なドキュメントを追加するために使用される特殊なタイプのコメントです。上記のコードは、コード ドキュメントのコメントを Person 構造体に追加します。go doc コマンドを使用すると、コード ドキュメントのコメントを表示できます。
3. Golang 構造のネスト
Golang では、構造ネストを使用して、ツリーやグラフなどのより複雑なデータ構造をシミュレートできます。構造の入れ子は、匿名フィールドを使用して実現できます。匿名フィールドは、以下に示すように、フィールド名が指定されていないフィールド タイプを指します。
// Person 结构体表示人的基本信息 // 包含姓名和年龄两个字段 type Person struct { Name string // 姓名 Age int // 年龄 }
上記のコードでは、2 次元平面上の点を表す Point 構造体を定義し、次に Circle 構造体を定義します。円の中心を示す匿名フィールド Point を含む Circle を表します。最後に、ホイールを表す Wheel 構造体を定義しました。これには、ホイールを表す匿名フィールド Circle と、スポークの数を表す Spokes フィールドが含まれています。構造のネストを通じて、さまざまなデータ構造を簡単に組み合わせて、より複雑なデータ構造を構築できます。
4. Golang 構造メソッド
Golang では、構造にメソッドを含めることができ、多くの場合、その構造に関連付けられている場合もあれば、独立したメソッドである場合もあります。構造体メソッドは、構造体に関連付けられた関数を参照し、構造体のメンバー変数を操作するために使用できます。構造体のメソッド定義では、メソッドのレシーバーを指定する必要があり、レシーバーは値型またはポインター型になります。例:
type Point struct { X int Y int } type Circle struct { Point // 匿名字段 Radius int } type Wheel struct { Circle // 匿名字段 Spokes int }
上記のコードでは、人の基本情報を表す Person 構造体を定義し、SayHello と ChangeAge という 2 つのメソッドを定義します。最初のメソッド SayHello は値型レシーバーを使用して挨拶文字列を出力し、2 番目のメソッド ChangeAge はポインタ型レシーバーを使用して年齢フィールドを変更します。ポインター レシーバーを使用すると、構造体のメンバー変数を簡単に変更できることがわかります。
5. 概要
この記事では、構造の定義、初期化、アノテーション、ネスト、メソッドなど、Golang の構造を詳しく紹介します。 Struct は Golang のオブジェクト指向プログラミングにおいて非常に重要なデータ型の 1 つであり、その柔軟性と利便性により、大規模なプロジェクトを開発する際に Golang がより便利かつ効率的になります。
以上がgolang 構造のコメントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。