การดู : 0

12/04/2026 18:15น.

EP.7 Go กับ Structs & Methods - ออกแบบข้อมูลให้ยืดหยุ่น!

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)
}