Go 言語は高速、簡潔、同時実行プログラミング言語であり、構造体 (struct) はその重要なデータ構造の 1 つです。構造体を使用すると、さまざまなタイプのデータを組み合わせて、より複雑なカスタム データ タイプを形成できます。この記事では、Go 言語の構造体の概念、使用法、具体的なコード例について詳しく説明します。
構造体はユーザー定義のデータ型であり、その主な機能は、複数の異なるデータ型を組み合わせて新しいデータ型を形成することです。 Go 言語では、構造はさまざまな型のフィールドのセットで構成され、各フィールドは独自の型と名前を持つことができます。
Go 言語では、type
および struct
キーワードを使用して構造を定義します。以下に簡単な例を示します。
package main import "fmt" type Person struct { Name string Age int Gender string }
上記のコードは、Name
、Age
、および 3 つのフィールドを含む Person
という名前の構造体を定義します。 性別
は、それぞれ名前、年齢、性別を表します。
構造体のインスタンスを作成するには、次に示すように、var
キーワードまたは :=
演算子を使用できます。以下:
func main() { var p1 Person p1.Name = "Alice" p1.Age = 25 p1.Gender = "Female" p2 := Person{ "Bob", 30, "Male" } fmt.Println(p1) fmt.Println(p2) }
上記の例では、person
タイプ p1
および p2
の 2 つのインスタンスを作成し、それらのフィールド値を初期化しました。構造体のフィールドには、.
演算子を介してアクセスできます。
Go 言語では、構造を他の構造内にネストして、より複雑なデータ構造を形成できます。以下に例を示します。
type Address struct { City string ZipCode string } type Employee struct { Name string Age int Address } func main() { emp := Employee { Name: "John", Age: 35, Address: Address{ City: "New York", ZipCode: "10001", }, } fmt.Println(emp) }
上記の例では、Employee
構造は Address
構造内にネストされており、名前、年齢、名前などの従業員の情報を表します。住所。 。ネストされた構造により、複雑なデータ構造をより簡単に表現できます。
実際のプログラミングでは、特定の名前を付けずに構造体を一時的に定義するだけで済む場合がありますが、その場合には匿名構造体を使用できます。以下は例です。
func main() { person := struct { Name string Age int }{ Name: "Lisa", Age: 28, } fmt.Println(person) }
上記の例では、匿名構造体を定義し、インスタンス化中に値を直接割り当て、その内容を出力します。
Go 言語では、構造体は、その構造体に関連付けられた関数であるメソッドを定義できます。以下は例です:
type Circle struct { Radius float64 } func (c Circle) Area() float64 { return 3.14 * c.Radius * c.Radius } func main() { circle := Circle{Radius: 5} area := circle.Area() fmt.Println("Circle area:", area) }
上の例では、円の面積を計算するために Circle
構造体とそれに関連付けられた Area
メソッドを定義します。そして、このメソッドを main
関数で呼び出します。
構造体はGo言語における重要なデータ構造の一つであり、構造体によりデータをより柔軟に表現・操作することができます。この記事の内容が、読者が Go 言語の構造の概念と使用法をより深く理解するのに役立つことを願っています。
以上がGo 言語の構造を深く理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。