Golang中的巢狀結構

Golang中的結構或結構體是一種使用者定義類型,它允許我們將一組不同類型的元素建立成一個單元。任何具有一組屬性或欄位的現實世界實體都可以表示為結構。

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。 Person 有一個名為 Address 的巢狀結構欄位。在主函數中,我們建立一個帶有 Address 欄位的新 Person 實例。然��,我們使用點符號列印出 Person 和 Address 結構體的各個欄位值,以存取巢狀欄位。

Sign up and earn $1000 a day ⋙

Leave a Comment

Go 中的關鍵字

Go 中的關鍵字

關鍵字-關鍵字是語言中用於某些內在過程或代表某些預定義動作的字詞。以下是您需要了解的有關 Golang 中的關鍵字的知識。

Golang中的資料類型

Golang中的資料類型

資料類型指定有效的 Go 變數可以包含的資料類型。 Go語言中,類型分為以下四類:

Golang 中的函數參數

Golang 中的函數參數

Go 支援兩種主要的傳遞參數的方式:按值傳遞和按引用傳遞。 Go 預設使用按值傳遞。

Golang中傳回多個值的函數

Golang中傳回多個值的函數

在Go語言中,允許使用return語句從函數傳回多個值。換句話說,在函數中,一個return語句可以傳回多個值。

Go 中的 Switch 語句

Go 中的 Switch 語句

Golang 和大多數其他程式語言一樣,有 switch 語句。以下是如何在 Golang 中使用 switch 語句。

在 Golang 中使用選擇語句時需要了解的案例

在 Golang 中使用選擇語句時需要了解的案例

在本文中,我們將學習如何使用預設情況來避免死鎖。但首先,讓我們先了解一下使用 Golang select 指令時出現死鎖的情況是什麼?

Golang 中的匿名結構和字段

Golang 中的匿名結構和字段

Golang 中的匿名結構是沒有名稱的一次性臨時結構,而匿名欄位允許嵌入未命名的欄位。

如何在 Golang 中使用 Rune

如何在 Golang 中使用 Rune

Golang 中的 Runes 是什麼?如何在 Golang 中使用 Rune?文章會告訴你答案。

如何在 Golang 中使用運算符

如何在 Golang 中使用運算符

運算符允許我們對操作數執行不同類型的操作。在 Go語言中,運算子可以根據其不同的功能進行分類。

Golang 中的 Void 標識符

Golang 中的 Void 標識符

Golang 中的 _(底線)稱為空白標識符。標識符是程式組件的使用者定義名稱,用於識別目的。

如何用 Golang 創建基本程序

如何用 Golang 創建基本程序

你好世界!是任何程式語言中的第一個基本程式。您可以按照以下步驟使用 Golang 編寫第一個程式。

如何在 Windows 上安裝 Go

如何在 Windows 上安裝 Go

Golang 可以輕鬆安裝在 Windows 上。以下是在 Windows 上安裝 Golang 的詳細逐步指南。

Golang 中同名的方法

Golang 中同名的方法

Golang允許在同一個套件中建立兩個或多個同名的方法,但是這些方法的接收者必須是不同的類型。

Go 中的函數

Go 中的函數

在 Go 中,函數是執行特定任務的程式碼區塊,可以在整個程式中重複使用以節省記憶體、提高可讀性並節省時間。

Go 中的變數作用域

Go 中的變數作用域

Golang 中變數的範圍決定了程式中可存取該變數的部分。在 Go 中,所有標識符都有一個在編譯時確定的詞法作用域。

8 個最便宜的雲端儲存供應商

8 個最便宜的雲端儲存供應商

讓我們來看看最便宜的線上雲端儲存選項。本文將從絕對價格和每千兆位元組(每月)兩個角度來探討定價,以便您選擇最適合自己的價格。

Excel 中的井號錯誤 (####) 是什麼?

Excel 中的井號錯誤 (####) 是什麼?

Excel 中的 #### 是一個常見的 Excel 錯誤,當我們在 Excel 中輸入資料、在 Excel 中輸入函數、在 Excel 中輸入公式時,它會出現在許多不同的情況下。

三星 Galaxy 手機上 12 個你應該更改的設置

三星 Galaxy 手機上 12 個你應該更改的設置

剛買了三星 Galaxy 手機並需要對其進行配置?以下是您應該更改的 10 個設置,以使您的三星手機運行得更好。

《謀殺疑雲2》最新代碼及輸入方法

《謀殺疑雲2》最新代碼及輸入方法

《Code Murder Mystery 2》幫助玩家為他們的角色選擇更多的刀皮,或獲得更多的錢來用於服務和購買遊戲中的其他東西。

28 張精美的生日卡片設計,為父母、配偶、愛人、朋友送上美好的祝福

28 張精美的生日卡片設計,為父母、配偶、愛人、朋友送上美好的祝福

愛人、父母、朋友、兄弟姊妹、同事……生日的時候,除了禮物,別忘了送上生日卡,表達祝福。

有趣又甜美的調情謎語,能「擄獲」你暗戀對象的心

有趣又甜美的調情謎語,能「擄獲」你暗戀對象的心

這些有趣的測驗將幫助你給你暗戀的人留下深刻的印象并快速而愉快地征服他的心。

科奇DTCL第7季:打造物品,標準科奇槍手陣容

科奇DTCL第7季:打造物品,標準科奇槍手陣容

如果 Corki DTCL 第 7 季想要自由摧毀敵方隊伍,他需要保護或支持來控制。同時,科奇的裝備也必須是標準的,才能造成更有效的傷害。

如何下載 Mini World Royale 以及如何玩的說明

如何下載 Mini World Royale 以及如何玩的說明

這是 Mini World Royale 的下載連結和遊戲說明,我們將有兩個版本:Mini World Royale APK 和 Mini World Royale iOS。

1314 是什麼?

1314 是什麼?

1314是年輕人常用來作為愛情暗號的數字。然而,並不是所有人都知道1314是什麼以及它意味著什麼?

如何在有毒環境中保護你的身心健康

如何在有毒環境中保護你的身心健康

處理有害情況可能極為困難。這裡有一些技巧可以幫助您巧妙地處理有毒環境並保持內心的平靜。

音樂刺激大腦的方式

音樂刺激大腦的方式

大多數人都知道音樂不僅僅用於娛樂,它還有更多的好處。以下是音樂刺激我們大腦發育的一些方式。

飲食中最常缺乏的營養素

飲食中最常缺乏的營養素

飲食對我們的健康非常重要。然而,我們大多數的飲食往往缺乏這六種重要營養素。

如何使用 Circle K 的 CK Club 應用程式獲取誘人的優惠

如何使用 Circle K 的 CK Club 應用程式獲取誘人的優惠

想要最快獲得 Circle K 的促銷訊息,您應該安裝 CK Club 應用程式。該應用程式可保存在 Circle K 購物或付款時的付款金額以及收集的印章數量。

Instagram 將允許 Reels 最長播放 3 分鐘

Instagram 將允許 Reels 最長播放 3 分鐘

Instagram 剛剛宣布,將允許用戶發布最長 3 分鐘的 Reels 視頻,是之前 90 秒限制的兩倍。

如何查看 Chromebook CPU 訊息

如何查看 Chromebook CPU 訊息

本文將指導您如何在 Chromebook 上直接查看 CPU 資訊並檢查 CPU 速度。