Golangのネスト構造

Golangの構造体は、異なる型の要素のグループを 1 つのユニットに作成できるユーザー定義型です。いくつかのプロパティまたはフィールドのセットを持つ現実世界のエンティティはすべて、構造体として表現できます。

Golangのネスト構造

Golangでネスト構造を使う方法

Go 言語ではネストされた構造が許可されます。別の構造体のフィールドである構造体は、ネストされた構造体と呼ばれます。つまり、ある構造の中に別の構造がある状態をネスト構造と呼びます。構文:

type struct_name_1 struct{
  // Các trường
} 
type struct_name_2 struct{
  variable_name  struct_name_1

}

Golang のネストされた構造を理解するには、次の例を検討してください。

例1:

// Chương trình Go minh hoạc
// cấu trúc lồng nhau
package main

import "fmt"

// Tạo cấu trúc
type Author struct {
	name string
	branch string
	year int
}

// Tạo cấu trúc lòng nhau
type HR struct {

	// cấu trúc là một trường
	details Author
}

func main() {

	// Khởi tạo các trường
	// của cấu trúc
	result := HR{
	
		details: Author{"Sona", "ECE", 2013},
	}

	// Hiện giá trị
	fmt.Println("\nDetails of Author")
	fmt.Println(result)
}

結果:

Details of Author
{{Sona ECE 2013}}

例2:

// Chương trình Golang minh họa
// cấu trúc lồng nhau
package main

import "fmt"

// Tạo cấu trúc
type Student struct {
	name string
	branch string
	year int
}

// Tạo cấu trúc lồng nhau
type Teacher struct {
	name string
	subject string
	exp	 int
	details Student
}

func main() {

	// Khởi tạo các trường
	// của cấu trúc
	result := Teacher{
		name: "Suman",
		subject: "Java",
		exp:	 5,
		details: Student{"Bongo", "CSE", 2},
	}

	// Hiện giá trị
	fmt.Println("Details of the Teacher")
	fmt.Println("Teacher's name: ", result.name)
	fmt.Println("Subject: ", result.subject)
	fmt.Println("Experience: ", result.exp)

	fmt.Println("\nDetails of Student")
	fmt.Println("Student's name: ", result.details.name)
	fmt.Println("Student's branch name: ", result.details.branch)
	fmt.Println("Year: ", result.details.year)
}

結果:

Details of the Teacher
Teacher's name:  Suman
Subject:  Java
Experience:  5

Details of Student
Student's name:  Bongo
Student's branch name:  CSE
Year:  2

例3:

Go では、構造体に、ネストされた構造体と呼ばれる、それ自体が構造体であるフィールドを含めることができます。ネストされた構造を持つ構造体の例を次に示します。

package main

import (
	"fmt"
)

type Address struct {
	Street	 string
	City	 string
	State	 string
	PostalCode string
}

type Person struct {
	FirstName string
	LastName string
	Age	 int
	Address Address
}

func main() {
	p := Person{
		FirstName: "John",
		LastName: "Doe",
		Age:	 30,
		Address: Address{
			Street:	 "123 Main St",
			City:	 "Anytown",
			State:	 "CA",
			PostalCode: "12345",
		},
	}

	fmt.Println(p.FirstName, p.LastName)
	fmt.Println("Age:", p.Age)
	fmt.Println("Address:")
	fmt.Println("Street:", p.Address.Street)
	fmt.Println("City:", p.Address.City)
	fmt.Println("State:", p.Address.State)
	fmt.Println("Postal Code:", p.Address.PostalCode)
}

結果:

John Doe
Age: 30
Address:
Street: 123 Main St
City: Anytown
State: CA
Postal Code: 12345

ここでは、Person と Address という 2 つの構造体型を定義します。 Person には、Address と呼ばれるネストされた構造体フィールドがあります。メイン関数では、Address フィールドを持つ新しい Person インスタンスを作成します。次に、ドット表記を使用して、Person 構造体と Address 構造体のさまざまなフィールド値を出力し、ネストされたフィールドにアクセスします。

Sign up and earn $1000 a day ⋙

Leave a Comment

Goのキーワード

Goのキーワード

キーワード - キーワードは、何らかの内部プロセスに使用されるか、何らかの事前定義されたアクションを表す言語の単語です。 Golang のキーワードについて知っておくべきことを以下に示します。

Golangのデータ型

Golangのデータ型

データ型は、有効な Go 変数に格納できるデータの型を指定します。 Go 言語では、型は次の 4 つのカテゴリに分類されます。

Golangの関数の引数

Golangの関数の引数

Go は、引数を渡す方法として、値渡しと参照渡しという 2 つの主な方法をサポートしています。 Go では、デフォルトで値渡しが使用されます。

Golangで複数の値を返す関数

Golangで複数の値を返す関数

Go 言語では、return ステートメントを使用して関数から複数の値を返すことができます。つまり、関数では、 return ステートメントは複数の値を返すことができます。

GoのSwitch文

GoのSwitch文

Golang には他のほとんどのプログラミング言語と同様に switch ステートメントがあります。 Golang で switch ステートメントを使用する方法は次のとおりです。

Golangで選択文を使用する際に知っておくべきケース

Golangで選択文を使用する際に知っておくべきケース

この記事では、デッドロックを回避するために default case を使用する方法を学習します。しかし、まず、Golang の select コマンドを使用するときにデッドロックが発生するケースが何であるかを確認しましょう。

Golang の匿名構造体とフィールド

Golang の匿名構造体とフィールド

Golang の匿名構造体は、1 回限りの目的で使用される名前のない一時的な構造体ですが、匿名フィールドでは名前のないフィールドを埋め込むことができます。

GolangでRuneを使う方法

GolangでRuneを使う方法

Golang におけるルーン文字とは何ですか? Golang で Rune を使用するにはどうすればいいですか?この記事でその答えがわかります。

Golangで演算子を使う方法

Golangで演算子を使う方法

演算子を使用すると、オペランドに対してさまざまな種類の演算を実行できます。 Go 言語では、演算子はさまざまな機能に基づいて分類できます。

Golang の void 識別子

Golang の void 識別子

Golang では _(アンダースコア) は空白識別子と呼ばれます。識別子は、識別目的で使用されるプログラム コンポーネントのユーザー定義名です。

Golangで基本的なプログラムを作成する方法

Golangで基本的なプログラムを作成する方法

こんにちは世界!あらゆるプログラミング言語における最初の基本プログラムです。この最初のプログラムは、以下の手順に従って Golang で記述できます。

WindowsにGoをインストールする方法

WindowsにGoをインストールする方法

Golang は Windows に簡単にインストールできます。以下は、Windows に Golang をインストールするための詳細なステップバイステップ ガイドです。

Golangにおける同じ名前のメソッド

Golangにおける同じ名前のメソッド

Golang では、同じパッケージ内に同じ名前のメソッドを 2 つ以上作成できますが、これらのメソッドのレシーバーは異なる型である必要があります。

Goにおける変数のスコープ

Goにおける変数のスコープ

Golang における変数のスコープは、その変数にアクセスできるプログラムの部分を決定します。 Go では、すべての識別子にはコンパイル時に決定される語彙スコープがあります。

Golang の制御文 (if、if-else、Nested-if)

Golang の制御文 (if、if-else、Nested-if)

Golang にはどのような条件文がありますか? Go プログラミングで条件文を使用するにはどうすればよいでしょうか?一緒に調べてみましょう!

外部モニターはノートパソコンのバッテリーに悪影響を及ぼす可能性があります。

外部モニターはノートパソコンのバッテリーに悪影響を及ぼす可能性があります。

ノートパソコンを外部モニターと組み合わせて使用​​すると、生産性が向上し、仕事がやりやすくなります。しかし、時間が経つにつれて、ノートパソコンのバッテリーが突然すぐに消耗し、バッテリー寿命が短くなり始めることに気付くでしょう。

折りたたみ式スマホの予想外の8つの大きなデメリット

折りたたみ式スマホの予想外の8つの大きなデメリット

折りたたみ式の携帯電話がかなりクールであることは否定できません。しかし、しばらく使用してみると、このデバイスにはいくつかの癖があることがわかりました。折りたたみ式スクリーンの携帯電話の予想外の 5 つの主な欠点をご紹介します。

AdobeはPremiere ProにAIビデオ作成技術を導入します

AdobeはPremiere ProにAIビデオ作成技術を導入します

Adobe は AI ビデオ作成技術を新たな方法で大衆に提供したが、この技術を使った完成した映画はまだ作成されていない。

2025年4月の最新Genshin Impactコード

2025年4月の最新Genshin Impactコード

Genshin Impact 5.5 コードは、原始石、魔法の鉱物、経験値、その他多くの報酬との交換に役立ちます。

IPadをMacのディスプレイとして使う方法

IPadをMacのディスプレイとして使う方法

macOS Catalina と iPadOS には、iPad を Mac のセカンダリディスプレイとして使用できるように設計された Sidecar という新機能のサポートが含まれています。

壁紙 1280、美しい Nokia 1280 の携帯電話の壁紙

壁紙 1280、美しい Nokia 1280 の携帯電話の壁紙

これは Nokia 1280 の壁紙のセットです。1280 の壁紙やブリック フォンの壁紙を取得するためにテキストを送信したことがある場合は、これらの壁紙を見てみてください。

極超音速宇宙飛行機が時速11,115kmに到達

極超音速宇宙飛行機が時速11,115kmに到達

ヴィーナス・エアロスペース社は、最高速度マッハ9に相当する時速11,115キロに達することができる新型極超音速航空機「スターゲイザー」の初画像を公開した。

朝食にバナナを食べると、お腹の張りが軽減される

朝食にバナナを食べると、お腹の張りが軽減される

腹部膨満は誰にでも起こり得ます。幸いなことに、朝食は、腹部膨満感を軽減するのに役立つ食材を食事に加えるのに最適な時間です。その材料はバナナです。

OpenAI、ChatGPTのAI画像生成機能のメジャーアップデートを発表

OpenAI、ChatGPTのAI画像生成機能のメジャーアップデートを発表

OpenAIはChatGPTのAI画像生成機能の注目すべきアップグレードを正式に導入しました。これは、以前のDALL-Eのような別の画像生成モデルを使用する代わりに重要な前進です。

Deepseek、一般的なハードウェア構成で問題なく動作する無料の言語モデルv3をリリース

Deepseek、一般的なハードウェア構成で問題なく動作する無料の言語モデルv3をリリース

中国の AI スタートアップ企業 DeepSeek が、最新の大規模言語モデル (LLM) である DeepSeek-V3-0324 を正式にリリースしました。

Gboardを捨ててSamsungキーボードに切り替える理由

Gboardを捨ててSamsungキーボードに切り替える理由

Gboard は長い間、Android スマートフォンの定番キーボードでした。しかし、最近になって多くの人が Samsung キーボードに切り替え、後戻りしなくなりました。

恋人たちに贈る甘くロマンチックな週末の願い

恋人たちに贈る甘くロマンチックな週末の願い

甘くロマンチックな週末のお祝いを恋人に送りましょう。それらは単なる言葉やメッセージであっても、意味のある霊的な贈り物となり、あなたの関係を強化するのに役立ちます。

ハリー・ポッターのテレビシリーズが成功するには、以下の要素が必要です

ハリー・ポッターのテレビシリーズが成功するには、以下の要素が必要です

HBOのハリー・ポッターのリメイクは2026年に初公開される予定です。テレビ版ハリー・ポッターの成功の理由は次のとおりです。

世界各地のスーパームーンの素晴らしい写真

世界各地のスーパームーンの素晴らしい写真

美しい月の写真はインターネット上では珍しくありません。この記事では、世界で最も美しい月の写真をまとめて紹介します。

AMD Ryzenユーザーは、無料でパフォーマンス向上を図るためにこのBIOSアップデートをインストールすべきです

AMD Ryzenユーザーは、無料でパフォーマンス向上を図るためにこのBIOSアップデートをインストールすべきです

現在、AMD は、パフォーマンスが低迷している主力 CPU ラインの問題に対処するため、1 秒あたりのフレーム数を数フレーム向上できる新しいアップデートを発表しました。