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

โครงสร้างใน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

ใน 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 วิธีหรือมากกว่าที่มีชื่อเดียวกันในแพ็คเกจเดียวกัน แต่ตัวรับของวิธีการเหล่านี้จะต้องเป็นประเภทที่แตกต่างกัน

ขอบเขตตัวแปรใน Go

ขอบเขตตัวแปรใน Go

ขอบเขตของตัวแปรใน Golang จะกำหนดส่วนของโปรแกรมที่สามารถเข้าถึงตัวแปรนั้นได้ ใน Go ตัวระบุทั้งหมดมีขอบเขตทางศัพท์ที่กำหนดในเวลาคอมไพล์

คำสั่งควบคุมใน Golang (if, if-else, Nested-if)

คำสั่งควบคุมใน Golang (if, if-else, Nested-if)

Golang มีคำสั่งเงื่อนไขอะไรบ้าง? วิธีการใช้คำสั่งเงื่อนไขในการเขียนโปรแกรม Go? ลองไปหาคำตอบไปด้วยกัน!

วิธีรับ Discord Nitro ฟรี 1 เดือนด้วย Opera GX

วิธีรับ Discord Nitro ฟรี 1 เดือนด้วย Opera GX

Opera GX เว็บเบราว์เซอร์ที่เน้นเรื่องการเล่นเกม ได้จับมือเป็นพันธมิตรที่น่าสนใจกับ Discord โดยเสนอให้ผู้ใช้ทดลองใช้ Discord Nitro ฟรีเป็นเวลา 1 เดือน

วิธีบันทึกหน้าจอคอมพิวเตอร์ Windows 10 อย่างรวดเร็ว

วิธีบันทึกหน้าจอคอมพิวเตอร์ Windows 10 อย่างรวดเร็ว

ปัจจุบันมีซอฟต์แวร์บันทึกหน้าจอคอมพิวเตอร์หลายตัวที่รองรับ Win 10 ช่วยให้คุณบันทึกหน้าจอคอมพิวเตอร์ได้อย่างง่ายดาย โดยเฉพาะสำหรับนักเล่นเกม

วิธีปิดความคิดเห็นเมื่อสตรีมสดบน Facebook

วิธีปิดความคิดเห็นเมื่อสตรีมสดบน Facebook

เมื่อรับชมถ่ายทอดสดบน Facebook ความคิดเห็นจะแสดงบนหน้าจอวิดีโอออนไลน์โดยอัตโนมัติ จากนั้นผู้ชมก็จะทราบความเห็นของคนอื่นๆ

15 สิ่งที่คุณสามารถทำได้ด้วย ChatGPT

15 สิ่งที่คุณสามารถทำได้ด้วย ChatGPT

นับตั้งแต่เปิดตัวในเดือนพฤศจิกายน 2022 ChatGPT ได้รับความสนใจอย่างมากเนื่องจากมีการใช้งานที่หลากหลาย เพื่อช่วยให้คุณได้รับประโยชน์สูงสุดจากเครื่องมือนี้ เรามี 15 วิธีที่คุณสามารถใช้ ChatGPT ได้

เคล็ดลับในการค้นหาเที่ยวบินราคาถูกบนสายการบิน Gemini

เคล็ดลับในการค้นหาเที่ยวบินราคาถูกบนสายการบิน Gemini

วิดเจ็ตบน Gemini ช่วยให้ผู้ช่วย AI เข้าถึงผู้ใช้ได้ในด้านต่างๆ มากขึ้น เช่น การค้นหาตั๋วเครื่องบินราคาถูกผ่านวิดเจ็ต Google Flights

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

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

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

คำแนะนำสำหรับการตั้งค่าวอลเปเปอร์แชทบน WhatsApp

คำแนะนำสำหรับการตั้งค่าวอลเปเปอร์แชทบน WhatsApp

WhatsApp มีฟีเจอร์เปลี่ยนวอลล์เปเปอร์แชท ช่วยให้ผู้ใช้สามารถตั้งค่าธีมแชทบน WhatsApp ได้ ผู้ใช้สามารถเลือกพื้นหลังสำหรับการแชทได้ถึง 30 แบบ หรือใช้ภาพส่วนตัวเป็นพื้นหลังการแชทบน WhatsApp ก็ได้

ไฟล์ FLV คืออะไร? วิธีการเปิดไฟล์ FLV บนคอมพิวเตอร์?

ไฟล์ FLV คืออะไร? วิธีการเปิดไฟล์ FLV บนคอมพิวเตอร์?

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

วิธีดูข่าวที่เก็บถาวรบน Facebook โทรศัพท์ คอมพิวเตอร์

วิธีดูข่าวที่เก็บถาวรบน Facebook โทรศัพท์ คอมพิวเตอร์

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

โค้ด MU Luc Dia VNG ล่าสุดและวิธีแลกโค้ด

โค้ด MU Luc Dia VNG ล่าสุดและวิธีแลกโค้ด

คุณสามารถแลกเปลี่ยนรหัสเกม MU Luc Dia VNG เป็น Zen และสกุลเงินอื่น ๆ ได้

10 แอปพลิเคชั่นที่คนรักหนังสือไม่ควรพลาด

10 แอปพลิเคชั่นที่คนรักหนังสือไม่ควรพลาด

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

เรียนรู้เกี่ยวกับ Spotify Connect: ฟีเจอร์ Spotify ที่บังคับให้ผู้ใช้ออกจาก YouTube Music

เรียนรู้เกี่ยวกับ Spotify Connect: ฟีเจอร์ Spotify ที่บังคับให้ผู้ใช้ออกจาก YouTube Music

ความสามารถในการควบคุมเพลงที่เล่นบนอุปกรณ์หนึ่งจากอีกอุปกรณ์หนึ่งเป็นคุณสมบัติที่ถูกมองข้าม YouTube Music ไม่มีฟีเจอร์นี้ และนั่นทำให้ผู้คนต้องหันมาใช้ Spotify

วิธีทำให้ก้อนหิมะระเบิดใน Minecraft Bedrock & Java Editon

วิธีทำให้ก้อนหิมะระเบิดใน Minecraft Bedrock & Java Editon

คำสั่ง Minecraft ช่วยให้ผู้เล่นสร้างเอฟเฟกต์ที่น่าสนใจมากมายได้ และตัวเลือกที่น่าสนใจอย่างหนึ่งก็คือการทำให้ลูกบอลหิมะระเบิด นี่คือวิธีการทำลูกบอลหิมะระเบิดใน Minecraft

คอมพิวเตอร์ของคุณมี NPU หรือไม่? วิธีการตรวจสอบมีดังนี้

คอมพิวเตอร์ของคุณมี NPU หรือไม่? วิธีการตรวจสอบมีดังนี้

ใน Windows 11 คุณสามารถตรวจสอบได้อย่างรวดเร็วว่าคอมพิวเตอร์ของคุณมี NPU (Neural Processing Unit) หรือไม่ ด้วยวิธีง่ายๆ 3 วิธี

โหมดไฮเบอร์เนตไม่ดีสำหรับพีซีหรือไม่?

โหมดไฮเบอร์เนตไม่ดีสำหรับพีซีหรือไม่?

โหมดไฮเบอร์เนตถือกำเนิดขึ้นจากความต้องการที่จะเปิดคอมพิวเตอร์ไว้ตลอด 24 ชั่วโมงทุกวัน โดยไม่ต้องการให้แบตเตอรี่หมด หรือเพื่อให้แน่ใจว่าระบบจะไม่ได้รับผลกระทบจากไฟฟ้าดับ ซึ่งแตกต่างจากกรณีของโหมดสลีป