12/04/2026 18:15น.

EP.7 Go กับ Structs & Methods - ออกแบบข้อมูลให้ยืดหยุ่น!
#ออกแบบข้อมูล
#Pointers
#Methods
#Structs
#Go
Go กับ Structs & Methods - ออกแบบข้อมูลให้ยืดหยุ่น!
การจัดการข้อมูลอย่างเป็นระบบคือหัวใจของโปรแกรมที่ดี และในภาษา Go เราทำได้ง่ายๆ ด้วย Structs ที่รวมกลุ่มตัวแปรต่างๆ ไว้ด้วยกัน พร้อมกับ Methods ที่ช่วยให้จัดการข้อมูลได้อย่างมีประสิทธิภาพ
Struct คืออะไร?
Struct (Structure) ใน Go คือการรวมกลุ่มของตัวแปรที่เกี่ยวข้องเข้าด้วยกัน เช่น ชื่อ อายุ ที่อยู่ ช่วยให้จัดการข้อมูลได้ง่ายและเป็นระบบ
ตัวอย่าง Struct:
package main
import "fmt"
type Person struct {
name string
age int
}
func main() {
p := Person{name: "Alice", age: 25}
fmt.Println(p.name, "is", p.age, "years old.")
}
การใช้ Methods กับ Structs
Methods เป็นฟังก์ชันที่เชื่อมกับ Struct ช่วยให้เราจัดการข้อมูลใน Struct ได้อย่างยืดหยุ่น
ตัวอย่าง Method:
type Person struct {
name string
age int
}
func (p Person) greet() {
fmt.Printf("Hello, my name is %s.\n", p.name)
}
func main() {
p := Person{name: "Bob", age: 30}
p.greet() // Output: Hello, my name is Bob.
}
Pointer กับ Structs
ใช้ Pointer ร่วมกับ Struct เพื่ออัปเดตค่าของตัวแปรภายใน Struct
ตัวอย่าง:
func (p *Person) setAge(newAge int) {
p.age = newAge
}
func main() {
p := Person{name: "Alice", age: 25}
p.setAge(26)
fmt.Println(p.name, "is now", p.age, "years old.")
}
Struct ภายใน Struct (Nested Structs)
Struct หนึ่งสามารถมี Struct อื่นเป็นสมาชิกได้ ทำให้รองรับโครงสร้างข้อมูลที่ซับซ้อนมากขึ้น
ตัวอย่าง Nested Struct:
type Address struct {
city string
state string
}
type Person struct {
name string
address Address
}
func main() {
p := Person{name: "John", address: Address{city: "Bangkok", state: "Thailand"}}
fmt.Println(p.name, "lives in", p.address.city)
}