Gensics

Back to Home

เริ่มต้นกับ Go: พื้นฐานการเขียนโปรแกรม

NPXVERSE Team15 กรกฎาคม 2567Go 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
  • 🌐 ใช้กันเยอะในบริษัทใหญ่ๆ