English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Golangでの構造体はユーザー定義の型であり、一つのユニットで異なるタイプの要素のセットを作成することができます。属性やフィールドを持つ実際の実体は構造体として表現できます。
Go言語では、匿名構造体を作成することができます。匿名構造体は名前を持たない構造体で、一時的に使用する構造体を作成するのに便利です。以下の構文で匿名構造体を作成できます:
variable_name := struct{ // fields }// Field_values}
以下の例を使ってこの概念について説明します:
//匿名構造体の概念 package main import "fmt" func main() { // 匿名構造体の作成と初期化 Element := struct { name string branch string language string Particles int } name: "山三" branch: "開発部" language: "C"++" Particles: 498, } //匿名構造体を表示する fmt.Println(Element) }
出力:
{山三 開発部 C++ 498}
Goの構造体では、匿名フィールドを作成することができます。匿名フィールドは名前を持たないフィールドで、フィールドのタイプを指定するだけで、Goが自動的にフィールドの名前として使用します。以下の構文で構造体の匿名フィールドを作成できます:
type struct_name struct{ int bool float64 }
重要な点:
構造体では、同じタイプの二つ以上のフィールドを作成することはできません。以下のようになります:
type student struct{ int int }
これを行おうとすると、コンパイラがエラーを返します。
匿名フィールドと名前付きフィールドを組み合わせることができます。以下のようになります:
type student struct{ name int price int string }
匿名フィールドの概念について説明するために、以下の例を用意しました:
package main import "fmt" //構造体に匿名フィールドを作成する type student struct { int string float64 } // Main関数 func main() { // 値を匿名、学生構造のフィールドに割り当てる value := student{123, "Bud", 8900.23} fmt.Println("入学人数 : ", value.int) fmt.Println("学生姓名 : ", value.string) fmt.Println("セット価格 : ", value.float64) }
出力:
入学人数 : 123 学生姓名 : Bud パッケージ価格 : 8900.23