English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang 基礎チュートリアル

Golang 控制文

Golang ファンクション & メソッド

Golang 構造体

Golang スライス & 配列

Golang 文字列(String)

Golang ポインタ

Golang インターフェース

Golang 并行処理

Golang エラ(Error)

Golang 他の雑多

Go 匿名構造体とフィールド

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