เริ่มต้นกับ Go: พื้นฐานการเขียนโปรแกรม
NPXVERSE Team•15 กรกฎาคม 2567•Go Basics
GolangProgrammingBasicsTutorial
ทำไมต้องเรียน Go?
Go เป็นภาษาโปรแกรมมิ่งที่พัฒนาโดย Google เพื่อแก้ปัญหาการพัฒนาซอฟต์แวร์ขนาดใหญ่
- ✅ เรียนรู้ง่าย - Syntax สะอาด เข้าใจง่าย
- ✅ เร็ว - Performance สูง Compile เร็ว
- ✅ Concurrent - รองรับการทำงานแบบขนานได้ดี
- ✅ Reliable - Memory safe, มี garbage collector
การติดตั้ง
ดาวน์โหลดจาก golang.org แล้วตรวจสอบด้วย:
go version
Hello World แรก
package main import "fmt" func main() { fmt.Println("สวัสดี Go!") }
ตัวแปรและประเภทข้อมูล
package main import "fmt" func main() { // วิธีที่ 1: ประกาศแบบเต็ม var ชื่อ string = "โก" var อายุ int = 13 // วิธีที่ 2: ให้ Go เดาประเภทเอง ภาษา := "โกแลง" // สั้นและใช้บ่อย fmt.Printf("ชื่อ: %s, อายุ: %d ปี\n", ชื่อ, อายุ) fmt.Println("เรียกอีกชื่อว่า:", ภาษา) }
ฟังก์ชัน
Go มีฟีเจอร์พิเศษที่ฟังก์ชันสามารถ return หลายค่าได้
package main import "fmt" // ฟังก์ชันบวกเลข func บวก(a, b int) int { return a + b } // ฟังก์ชันที่ return 2 ค่า (ผลลัพธ์ + error) func หาร(a, b float64) (float64, error) { if b == 0 { return 0, fmt.Errorf("ไม่สามารถหารด้วย 0 ได้") } return a / b, nil } func main() { ผลบวก := บวก(5, 3) fmt.Println("5 + 3 =", ผลบวก) ผลหาร, ข้อผิดพลาด := หาร(10, 2) if ข้อผิดพลาด != nil { fmt.Println("เกิดข้อผิดพลาด:", ข้อผิดพลาด) } else { fmt.Println("10 ÷ 2 =", ผลหาร) } }
Arrays และ Slices
Array มีขนาดคงที่ แต่ Slice ปรับขนาดได้ (ใช้บ่อยกว่า)
package main import "fmt" func main() { // Array (ขนาดคงที่) ตัวเลข := [3]int{1, 2, 3} fmt.Println("Array:", ตัวเลข) // Slice (ขนาดปรับได้) ผลไม้ := []string{"แอปเปิล", "กล้วย", "ส้ม"} fmt.Println("Slice เดิม:", ผลไม้) // เพิ่มข้อมูลใน Slice ผลไม้ = append(ผลไม้, "องุ่น") fmt.Println("หลังเพิ่ม:", ผลไม้) // ตัด Slice fmt.Println("2 ตัวแรก:", ผลไม้[:2]) fmt.Println("2 ตัวสุดท้าย:", ผลไม้[2:]) }
การควบคุมการทำงาน
If/Else
package main import "fmt" func main() { คะแนน := 85 if คะแนน >= 80 { fmt.Println("เก่งมาก! 🎉") } else if คะแนน >= 60 { fmt.Println("ผ่าน ✅") } else { fmt.Println("ต้องพยายามเพิ่ม 💪") } }
For Loop
package main import "fmt" func main() { // วนลูปแบบปกติ fmt.Println("นับ 1-5:") for i := 1; i <= 5; i++ { fmt.Printf("%d ", i) } fmt.Println() // วนลูปผ่าน slice สีต่างๆ := []string{"แดง", "เขียว", "น้ำเงิน"} for ลำดับ, สี := range สีต่างๆ { fmt.Printf("สีที่ %d: %s\n", ลำดับ+1, สี) } }
สรุป
Go เป็นภาษาที่:
- 🚀 เรียนรู้ง่าย เขียนได้เร็ว
- ⚡ Performance สูง
- 🔧 เหมาะสำหรับ web services, APIs
- 🌐 ใช้กันเยอะในบริษัทใหญ่ๆ