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

Golangで定数を使う方法

Golangで定数を使う方法

Golang における Constant または Const とは何ですか? Go で定数を使用する際に知っておくべきことを以下に示します。

Golangのvolatile関数

Golangのvolatile関数

Go の可変長関数を使用すると、関数に可変数の引数を渡すことができます。 Golang の volatile 関数について知っておくべきことはすべてここにあります。

Golang の名前付き戻りパラメータ

Golang の名前付き戻りパラメータ

Golang では、名前付き戻りパラメータは、名前付きパラメータと呼ばれることがよくあります。 Golang では、関数のシグネチャまたは定義内で関数の戻りパラメータまたは結果に名前を付けることができます。

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 をインストールするための詳細なステップバイステップ ガイドです。

2025年の学生に最適なノートパソコン

2025年の学生に最適なノートパソコン

学生は学習のために特定のタイプのノートパソコンを必要とします。専攻分野で十分なパフォーマンスを発揮できるだけでなく、一日中持ち運べるほどコンパクトで軽量であることも重要です。

Windows 10にプリンターを追加する方法

Windows 10にプリンターを追加する方法

Windows 10 にプリンターを追加するのは簡単ですが、有線デバイスの場合のプロセスはワイヤレス デバイスの場合とは異なります。

最高の精度でコンピューターのRAMをチェックし、RAMエラーをチェックする方法

最高の精度でコンピューターのRAMをチェックし、RAMエラーをチェックする方法

ご存知の通り、RAMはコンピューターにとって非常に重要なハードウェア部品であり、データ処理のためのメモリとして機能し、ノートパソコンやPCの速度を決定づける要因です。以下の記事では、WebTech360がWindowsでソフトウェアを使ってRAMエラーをチェックする方法をいくつかご紹介します。

通常のテレビとスマートテレビの違い

通常のテレビとスマートテレビの違い

スマートテレビはまさに世界を席巻しています。数多くの優れた機能とインターネット接続により、テクノロジーはテレビの視聴方法を変えました。

なぜ冷凍庫にはライトがないのに、冷蔵庫にはライトがあるのでしょうか?

なぜ冷凍庫にはライトがないのに、冷蔵庫にはライトがあるのでしょうか?

冷蔵庫は家庭ではよく使われる家電製品です。冷蔵庫には通常 2 つの部屋があり、冷蔵室は広く、ユーザーが開けるたびに自動的に点灯するライトが付いていますが、冷凍室は狭く、ライトはありません。

Wi-Fiの速度低下を引き起こすネットワーク混雑を解決する2つの方法

Wi-Fiの速度低下を引き起こすネットワーク混雑を解決する2つの方法

Wi-Fi ネットワークは、ルーター、帯域幅、干渉以外にも多くの要因の影響を受けますが、ネットワークを強化する賢い方法がいくつかあります。

Tenorshare Reibootを使ってデータ損失なくiOS 17からiOS 16にダウングレードする方法

Tenorshare Reibootを使ってデータ損失なくiOS 17からiOS 16にダウングレードする方法

お使いの携帯電話で安定した iOS 16 に戻したい場合は、iOS 17 をアンインストールして iOS 17 から 16 にダウングレードするための基本ガイドを以下に示します。

ヨーグルトを毎日食べると体に何が起こるのでしょうか?

ヨーグルトを毎日食べると体に何が起こるのでしょうか?

ヨーグルトは素晴らしい食べ物です。ヨーグルトを毎日食べるのは良いことでしょうか?ヨーグルトを毎日食べると、身体はどう変わるのでしょうか?一緒に調べてみましょう!

健康に最も良いお米の種類は何ですか?

健康に最も良いお米の種類は何ですか?

この記事では、最も栄養価の高い米の種類と、どの米を選んだとしてもその健康効果を最大限に引き出す方法について説明します。

朝時間通りに起きる方法

朝時間通りに起きる方法

睡眠スケジュールと就寝時の習慣を確立し、目覚まし時計を変え、食生活を調整することは、よりよく眠り、朝時間通りに起きるのに役立つ対策の一部です。

Rent Please! をプレイするためのヒント初心者向け大家シミュレーション

Rent Please! をプレイするためのヒント初心者向け大家シミュレーション

レンタルして下さい! Landlord Sim は、iOS および Android 向けのシミュレーション モバイル ゲームです。あなたはアパートの大家としてプレイし、アパートの内装をアップグレードして入居者を受け入れる準備をしながら、アパートの賃貸を始めます。

最新のバスルームタワーディフェンスコードとコードの入力方法

最新のバスルームタワーディフェンスコードとコードの入力方法

Bathroom Tower Defense Roblox ゲーム コードを入手して、魅力的な報酬と引き換えましょう。これらは、より高いダメージを与えるタワーをアップグレードしたり、ロックを解除したりするのに役立ちます。

変圧器の構造、記号、動作原理

変圧器の構造、記号、動作原理

変圧器の構造、記号、動作原理を最も正確な方法で学びましょう。

AIがスマートテレビを進化させる4つの方法

AIがスマートテレビを進化させる4つの方法

画質や音質の向上から音声制御まで、これらの AI 搭載機能により、スマートテレビはさらに優れたものになります。

ChatGPTがDeepSeekより優れている理由

ChatGPTがDeepSeekより優れている理由

当初、人々はDeepSeekに大きな期待を寄せていました。 ChatGPT の強力な競合製品として販売されている AI チャットボットは、インテリジェントなチャット機能とエクスペリエンスを約束します。