โครงสร้างแบบซ้อนกันในโกลัง

โครงสร้างใน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 โดยใช้สัญลักษณ์จุดเพื่อเข้าถึงฟิลด์ที่ซ้อนกัน

Sign up and earn $1000 a day ⋙

Leave a Comment

วิธีการใช้ค่าคงที่ใน Golang

วิธีการใช้ค่าคงที่ใน Golang

ค่าคงที่หรือ Const ใน Golang คืออะไร? นี่คือสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับการใช้ค่าคงที่ใน Go

ฟังก์ชั่นระเหยใน Golang

ฟังก์ชั่นระเหยใน Golang

ฟังก์ชัน Variadic ใน Go ช่วยให้คุณสามารถส่งอาร์กิวเมนต์จำนวนไม่แน่นอนไปยังฟังก์ชันได้ นี่คือทุกสิ่งที่คุณจำเป็นต้องทราบเกี่ยวกับฟังก์ชันผันผวนใน Golang

พารามิเตอร์การส่งคืนที่มีชื่อใน Golang

พารามิเตอร์การส่งคืนที่มีชื่อใน Golang

ใน Golang พารามิเตอร์การส่งคืนที่มีชื่อมักเรียกว่าพารามิเตอร์ที่มีชื่อ Golang อนุญาตให้ตั้งชื่อพารามิเตอร์ที่ส่งกลับหรือผลลัพธ์ของฟังก์ชันในลายเซ็นหรือคำจำกัดความของฟังก์ชัน

คีย์เวิร์ดใน Go

คีย์เวิร์ดใน Go

คำหลัก - คำหลักคือคำในภาษาที่ใช้สำหรับกระบวนการภายในบางอย่างหรือแสดงถึงการดำเนินการที่กำหนดไว้ล่วงหน้า นี่คือสิ่งที่คุณจำเป็นต้องทราบเกี่ยวกับคีย์เวิร์ดใน Golang

ประเภทข้อมูลใน Golang

ประเภทข้อมูลใน Golang

ประเภทข้อมูลระบุประเภทข้อมูลที่ตัวแปร Go ที่ถูกต้องสามารถมีได้ ในภาษา Go ประเภทจะถูกแบ่งออกเป็นสี่ประเภทดังต่อไปนี้:

อาร์กิวเมนต์ฟังก์ชันใน Golang

อาร์กิวเมนต์ฟังก์ชันใน Golang

Go รองรับสองวิธีหลักในการส่งอาร์กิวเมนต์: ส่งตามค่าและส่งตามการอ้างอิง Go จะใช้ค่า pass by ตามค่าเริ่มต้น

ฟังก์ชันส่งคืนค่าหลายค่าใน Golang

ฟังก์ชันส่งคืนค่าหลายค่าใน Golang

ในภาษา Go คุณได้รับอนุญาตให้ส่งคืนค่าหลายค่าจากฟังก์ชันโดยใช้คำสั่ง return กล่าวอีกนัยหนึ่ง ในฟังก์ชัน คำสั่ง return สามารถส่งคืนค่าได้หลายค่า

คำสั่ง Switch ใน Go

คำสั่ง Switch ใน Go

Golang เช่นเดียวกับภาษาการเขียนโปรแกรมอื่นๆ ส่วนใหญ่ก็มีคำสั่ง switch วิธีใช้คำสั่ง switch ใน Golang มีดังนี้

กรณีที่ควรทราบเมื่อใช้คำสั่งเลือกใน Golang

กรณีที่ควรทราบเมื่อใช้คำสั่งเลือกใน Golang

ในบทความนี้ เราจะเรียนรู้วิธีใช้เคสเริ่มต้นเพื่อหลีกเลี่ยงการหยุดชะงัก ก่อนอื่นเรามาดูก่อนว่า deadlock case เกิดขึ้นเมื่อใช้คำสั่ง Golang select อย่างไร

โครงสร้างและฟิลด์ที่ไม่ระบุชื่อในโกลัง

โครงสร้างและฟิลด์ที่ไม่ระบุชื่อในโกลัง

โครงสร้างที่ไม่ระบุชื่อใน Golang เป็นโครงสร้างชั่วคราวที่ไม่มีการใช้ชื่อเพื่อวัตถุประสงค์เพียงครั้งเดียว ในขณะที่ฟิลด์ที่ไม่ระบุชื่ออนุญาตให้ฝังฟิลด์ที่ไม่มีชื่อได้

วิธีใช้ตัวดำเนินการใน Golang

วิธีใช้ตัวดำเนินการใน Golang

ตัวดำเนินการช่วยให้เราสามารถดำเนินการประเภทต่างๆ กับตัวดำเนินการได้ ในภาษา Go ตัวดำเนินการสามารถจำแนกประเภทได้ตามฟังก์ชันที่แตกต่างกัน

ตัวระบุช่องว่างใน Golang

ตัวระบุช่องว่างใน Golang

_(ขีดล่าง) ใน Golang เรียกว่า Blank Identifier ตัวระบุคือชื่อที่ผู้ใช้กำหนดสำหรับส่วนประกอบของโปรแกรมซึ่งใช้เพื่อวัตถุประสงค์ในการระบุตัวตน

วิธีการสร้างโปรแกรมพื้นฐานใน Golang

วิธีการสร้างโปรแกรมพื้นฐานใน Golang

สวัสดีโลก! เป็นโปรแกรมพื้นฐานแรกในภาษาการเขียนโปรแกรมใด ๆ คุณสามารถเขียนโปรแกรมแรกนี้ใน Golang ได้โดยทำตามขั้นตอนด้านล่างนี้

วิธีการติดตั้ง Go บน Windows

วิธีการติดตั้ง Go บน Windows

Golang สามารถติดตั้งบน Windows ได้อย่างง่ายดาย ด้านล่างนี้เป็นคำแนะนำทีละขั้นตอนโดยละเอียดในการติดตั้ง Golang บน Windows

วิธีการที่มีชื่อเดียวกันใน Golang

วิธีการที่มีชื่อเดียวกันใน Golang

Golang อนุญาตให้สร้างวิธีการ 2 วิธีหรือมากกว่าที่มีชื่อเดียวกันในแพ็คเกจเดียวกัน แต่ตัวรับของวิธีการเหล่านี้จะต้องเป็นประเภทที่แตกต่างกัน

แล็ปท็อปที่ดีที่สุดสำหรับนักเรียนในปี 2025

แล็ปท็อปที่ดีที่สุดสำหรับนักเรียนในปี 2025

นักศึกษาจำเป็นต้องมีแล็ปท็อปเฉพาะทางสำหรับการเรียน ไม่เพียงแต่จะต้องมีพลังเพียงพอที่จะทำงานได้ดีในสาขาวิชาที่เลือกเท่านั้น แต่ยังต้องมีขนาดกะทัดรัดและน้ำหนักเบาพอที่จะพกพาไปได้ตลอดวัน

วิธีเพิ่มเครื่องพิมพ์ลงใน Windows 10

วิธีเพิ่มเครื่องพิมพ์ลงใน Windows 10

การเพิ่มเครื่องพิมพ์ลงใน Windows 10 เป็นเรื่องง่าย แม้ว่ากระบวนการสำหรับอุปกรณ์แบบมีสายจะแตกต่างจากอุปกรณ์ไร้สายก็ตาม

วิธีตรวจสอบ RAM และตรวจสอบข้อผิดพลาด RAM บนคอมพิวเตอร์ของคุณด้วยอัตราความแม่นยำสูงสุด

วิธีตรวจสอบ RAM และตรวจสอบข้อผิดพลาด RAM บนคอมพิวเตอร์ของคุณด้วยอัตราความแม่นยำสูงสุด

อย่างที่ทราบกันดีว่า RAM เป็นส่วนประกอบฮาร์ดแวร์ที่สำคัญมากในคอมพิวเตอร์ ทำหน้าที่เป็นหน่วยความจำในการประมวลผลข้อมูล และเป็นปัจจัยที่กำหนดความเร็วของแล็ปท็อปหรือพีซี ในบทความด้านล่างนี้ WebTech360 จะแนะนำวิธีการตรวจสอบข้อผิดพลาดของ RAM โดยใช้ซอฟต์แวร์บน Windows

ความแตกต่างระหว่างทีวีธรรมดากับสมาร์ททีวี

ความแตกต่างระหว่างทีวีธรรมดากับสมาร์ททีวี

สมาร์ททีวีเข้ามาครองโลกอย่างแท้จริง ด้วยคุณสมบัติที่ยอดเยี่ยมมากมายและการเชื่อมต่ออินเทอร์เน็ต เทคโนโลยีได้เปลี่ยนแปลงวิธีการชมทีวีของเรา

ทำไมช่องแช่แข็งไม่มีแสง แต่ตู้เย็นมี?

ทำไมช่องแช่แข็งไม่มีแสง แต่ตู้เย็นมี?

ตู้เย็นเป็นเครื่องใช้ไฟฟ้าที่คุ้นเคยในครัวเรือน ตู้เย็นโดยทั่วไปจะมี 2 ช่อง โดยช่องแช่เย็นจะมีขนาดกว้างขวางและมีไฟที่เปิดอัตโนมัติทุกครั้งที่ผู้ใช้งานเปิด ในขณะที่ช่องแช่แข็งจะแคบและไม่มีไฟส่องสว่าง

2 วิธีในการแก้ไขความแออัดของเครือข่ายที่ทำให้ Wi-Fi ช้าลง

2 วิธีในการแก้ไขความแออัดของเครือข่ายที่ทำให้ Wi-Fi ช้าลง

เครือข่าย Wi-Fi ได้รับผลกระทบจากปัจจัยหลายประการนอกเหนือจากเราเตอร์ แบนด์วิดท์ และสัญญาณรบกวน แต่ยังมีวิธีชาญฉลาดบางอย่างในการเพิ่มประสิทธิภาพเครือข่ายของคุณ

วิธีดาวน์เกรดจาก iOS 17 เป็น iOS 16 โดยไม่สูญเสียข้อมูลโดยใช้ Tenorshare Reiboot

วิธีดาวน์เกรดจาก iOS 17 เป็น iOS 16 โดยไม่สูญเสียข้อมูลโดยใช้ Tenorshare Reiboot

หากคุณต้องการกลับไปใช้ iOS 16 ที่เสถียรบนโทรศัพท์ของคุณ นี่คือคำแนะนำพื้นฐานในการถอนการติดตั้ง iOS 17 และดาวน์เกรดจาก iOS 17 เป็น 16

เมื่อกินโยเกิร์ตเป็นประจำทุกวัน จะเกิดอะไรขึ้นกับร่างกาย?

เมื่อกินโยเกิร์ตเป็นประจำทุกวัน จะเกิดอะไรขึ้นกับร่างกาย?

โยเกิร์ตเป็นอาหารที่ยอดเยี่ยม กินโยเกิร์ตทุกวันดีจริงหรือ? เมื่อคุณกินโยเกิร์ตทุกวัน ร่างกายจะเปลี่ยนแปลงไปอย่างไรบ้าง? ลองไปหาคำตอบไปด้วยกัน!

ข้าวประเภทไหนดีต่อสุขภาพมากที่สุด?

ข้าวประเภทไหนดีต่อสุขภาพมากที่สุด?

บทความนี้จะกล่าวถึงประเภทของข้าวที่มีคุณค่าทางโภชนาการสูงสุดและวิธีเพิ่มประโยชน์ด้านสุขภาพจากข้าวที่คุณเลือก

วิธีตื่นนอนให้ตรงเวลาในตอนเช้า

วิธีตื่นนอนให้ตรงเวลาในตอนเช้า

การกำหนดตารางเวลาการนอนและกิจวัตรประจำวันก่อนเข้านอน การเปลี่ยนนาฬิกาปลุก และการปรับเปลี่ยนการรับประทานอาหารเป็นมาตรการบางประการที่จะช่วยให้คุณนอนหลับได้ดีขึ้นและตื่นนอนตรงเวลาในตอนเช้า

เคล็ดลับสำหรับการเล่น Rent Please! การจำลองผู้ให้เช่าบ้านสำหรับมือใหม่

เคล็ดลับสำหรับการเล่น Rent Please! การจำลองผู้ให้เช่าบ้านสำหรับมือใหม่

ขอเช่าหน่อยคะ! Landlord Sim เป็นเกมจำลองมือถือบน iOS และ Android คุณจะเล่นเป็นเจ้าของอพาร์ทเมนท์และเริ่มให้เช่าอพาร์ทเมนท์โดยมีเป้าหมายในการอัพเกรดภายในอพาร์ทเมนท์ของคุณและเตรียมพร้อมสำหรับผู้เช่า

รหัสป้องกันหอคอยในห้องน้ำล่าสุดและวิธีการป้อนรหัส

รหัสป้องกันหอคอยในห้องน้ำล่าสุดและวิธีการป้อนรหัส

รับรหัสเกม Bathroom Tower Defense Roblox และแลกรับรางวัลสุดน่าตื่นเต้น พวกเขาจะช่วยคุณอัพเกรดหรือปลดล็อคหอคอยที่สร้างความเสียหายได้มากขึ้น

โครงสร้าง สัญลักษณ์ และหลักการทำงานของหม้อแปลงไฟฟ้า

โครงสร้าง สัญลักษณ์ และหลักการทำงานของหม้อแปลงไฟฟ้า

มาเรียนรู้เรื่องโครงสร้าง สัญลักษณ์ และหลักการทำงานของหม้อแปลงแบบแม่นยำที่สุดกันดีกว่า

4 วิธีที่ AI ช่วยทำให้สมาร์ททีวีดีขึ้น

4 วิธีที่ AI ช่วยทำให้สมาร์ททีวีดีขึ้น

ตั้งแต่คุณภาพของภาพและเสียงที่ดีขึ้นไปจนถึงการควบคุมด้วยเสียงและอื่นๆ อีกมากมาย คุณสมบัติที่ขับเคลื่อนด้วย AI เหล่านี้ทำให้สมาร์ททีวีดีขึ้นมาก!

เหตุใด ChatGPT จึงดีกว่า DeepSeek

เหตุใด ChatGPT จึงดีกว่า DeepSeek

ในตอนแรกผู้คนมีความหวังสูงกับ DeepSeek ในฐานะแชทบอท AI ที่ทำการตลาดในฐานะคู่แข่งที่แข็งแกร่งของ ChatGPT จึงรับประกันถึงความสามารถและประสบการณ์การแชทอันชาญฉลาด