Go Fundamentals

Originally published at https://somprasongd.work/blog/go/go-fundamentals ภาษา Go (หรือ Golang) เป็นภาษาโปรแกรมระดับสูงที่พัฒนาโดย Google โดยเน้นความเรียบง่าย ประสิทธิภาพสูง และรองรับการประมวลผลพร้อมกัน (Concurrency) ได้อย่างยอดเยี่ยม ด้วยความสามารถเหล่านี้ทำให้ Go ได้รับความนิยมอย่างรวดเร็วในหมู่นักพัฒนาซอฟต์แวร์ โดยเฉพาะอย่างยิ่งในระบบที่ต้องการความเร็วและความเสถียรสูง เช่น ระบบเครือข่าย บริการแบบกระจาย (Distributed Systems) และแอปพลิเคชันที่มีการประมวลผลพร้อมกัน บทความนี้จะพาคุณไปรู้จักกับภาษา Go ตั้งแต่ขั้นพื้นฐานจนถึงแนวคิดขั้นสูง โดยครอบคลุมหัวข้อสำคัญ ได้แก่ เริ่มต้นใช้งาน พื้นฐานภาษา Go ชนิดของข้อมูลใน Go ออกแบบโค้ดให้ยืดหยุ่นด้วย Interface ทำความรู้จักกับ Generic ในภาษา Go การทำงานแบบ Concurrency การจัดการข้อผิดพลาด (Error Handling) Unit Testing การใช้งานฟังก์ชันขั้นสูง การใช้ Context ใน Go การทำงานกับ JSON 1. เริ่มต้นใช้งาน เรามาเริ่มจากการติดตั้งภาษา Go และลองการเขียนโปรแกรม "Hello World" กันก่อน การเตรียมเครื่อง การเขียนโปรแกรม "Hello World" การรันโปรแกรม การใช้งาน Go package การเตรียมเครื่อง ติดตั้ง Go จากที่นี่ (ปัจจุบันเวอร์ชัน 1.24.1) ติดตั้ง VS Code จากที่นี่ และติดตั้ง extensions เพิ่มเติมดังนี้ Go ต้องติดตั้ง Error Lens แนะนำไว้เป็นตัวช่วยแสดงข้อผิดพลาด การเขียนโปรแกรม "Hello World" การสร้างโปรเจกต์ใหม่ใน Go ให้เริ่มจากสร้าง Go module ก่อน เพื่อเปิดใช้งาน dependency tracking มีวิธีดังนี้: สร้าง Directory สำหรับโปรเจกต์ mkdir hello cd hello สร้าง Go Module แนะนำให้ตั้งชื่อ module ตามชื่อ repository หากต้องการแชร์โค้ดให้ผู้อื่นใช้งาน go mod init gobasic โครงสร้างพื้นฐานของโปรแกรม Go Go มีข้อกำหนดสำคัญ 2 ข้อสำหรับจุดเริ่มต้นของโปรแกรม ต้องมี package main โปรแกรมเริ่มทำงานที่ฟังก์ชัน main ไฟล์นี้สามารถอยู่ที่ไหนและตั้งชื่ออะไรก็ได้ แต่โดยทั่วไปจะตั้งชื่อเป็น main.go ตัวอย่างโค้ด "Hello World": package main import "fmt" func main() { fmt.Println("Hello world!") // พิมพ์ข้อความออกทาง console } การจัดรูปแบบการแสดงผล Go รองรับการพิมพ์ข้อความแบบ format ด้วย fmt.Printf() ตัวอย่าง: package main import "fmt" func main() { fmt.Printf(`- แสดงข้อความใช้ %s - แสดงตัวเลขใช้ %d - แสดงค่าของตัวแปรใช้ %v - แสดงชนิดของตัวแปรใช้ %T\n`, "ข้อความ", // %s: แสดงข้อความ 123, // %d: แสดงตัวเลข "ใส่อะไรมาก็ได้", // %v: แสดงค่าของตัวแปร true) // %T: แสดงชนิดของตัวแปร } การรันโปรแกรม ใน Go สามารถรันโปรแกรมได้ 2 วิธีหลัก ๆ คือ รันโปรแกรมโดยตรง และ คอมไพล์เป็น Binary File รันโปรแกรมโดยตรง ใช้คำสั่ง go run เพื่อตรวจสอบและรันโค้ดทันที: go run main.go

Mar 21, 2025 - 06:19
 0
Go Fundamentals

Originally published at https://somprasongd.work/blog/go/go-fundamentals

ภาษา Go (หรือ Golang) เป็นภาษาโปรแกรมระดับสูงที่พัฒนาโดย Google โดยเน้นความเรียบง่าย ประสิทธิภาพสูง และรองรับการประมวลผลพร้อมกัน (Concurrency) ได้อย่างยอดเยี่ยม ด้วยความสามารถเหล่านี้ทำให้ Go ได้รับความนิยมอย่างรวดเร็วในหมู่นักพัฒนาซอฟต์แวร์ โดยเฉพาะอย่างยิ่งในระบบที่ต้องการความเร็วและความเสถียรสูง เช่น ระบบเครือข่าย บริการแบบกระจาย (Distributed Systems) และแอปพลิเคชันที่มีการประมวลผลพร้อมกัน

บทความนี้จะพาคุณไปรู้จักกับภาษา Go ตั้งแต่ขั้นพื้นฐานจนถึงแนวคิดขั้นสูง โดยครอบคลุมหัวข้อสำคัญ ได้แก่

  • เริ่มต้นใช้งาน
  • พื้นฐานภาษา Go
  • ชนิดของข้อมูลใน Go
  • ออกแบบโค้ดให้ยืดหยุ่นด้วย Interface
  • ทำความรู้จักกับ Generic ในภาษา Go
  • การทำงานแบบ Concurrency
  • การจัดการข้อผิดพลาด (Error Handling)
  • Unit Testing
  • การใช้งานฟังก์ชันขั้นสูง
  • การใช้ Context ใน Go
  • การทำงานกับ JSON

1. เริ่มต้นใช้งาน

เรามาเริ่มจากการติดตั้งภาษา Go และลองการเขียนโปรแกรม "Hello World" กันก่อน

  • การเตรียมเครื่อง
  • การเขียนโปรแกรม "Hello World"
  • การรันโปรแกรม
  • การใช้งาน Go package

การเตรียมเครื่อง

  • ติดตั้ง Go จากที่นี่ (ปัจจุบันเวอร์ชัน 1.24.1)
  • ติดตั้ง VS Code จากที่นี่ และติดตั้ง extensions เพิ่มเติมดังนี้
    • Go ต้องติดตั้ง
    • Error Lens แนะนำไว้เป็นตัวช่วยแสดงข้อผิดพลาด

การเขียนโปรแกรม "Hello World"

การสร้างโปรเจกต์ใหม่ใน Go ให้เริ่มจากสร้าง Go module ก่อน เพื่อเปิดใช้งาน dependency tracking มีวิธีดังนี้:

  1. สร้าง Directory สำหรับโปรเจกต์
   mkdir hello
   cd hello
  1. สร้าง Go Module

แนะนำให้ตั้งชื่อ module ตามชื่อ repository หากต้องการแชร์โค้ดให้ผู้อื่นใช้งาน

   go mod init gobasic
  1. โครงสร้างพื้นฐานของโปรแกรม Go

Go มีข้อกำหนดสำคัญ 2 ข้อสำหรับจุดเริ่มต้นของโปรแกรม

  • ต้องมี package main
  • โปรแกรมเริ่มทำงานที่ฟังก์ชัน main

ไฟล์นี้สามารถอยู่ที่ไหนและตั้งชื่ออะไรก็ได้ แต่โดยทั่วไปจะตั้งชื่อเป็น main.go

ตัวอย่างโค้ด "Hello World":

   package main

   import "fmt"

   func main() {
     fmt.Println("Hello world!") // พิมพ์ข้อความออกทาง console
   }
  1. การจัดรูปแบบการแสดงผล

Go รองรับการพิมพ์ข้อความแบบ format ด้วย fmt.Printf()

ตัวอย่าง:

   package main

   import "fmt"

   func main() {
       fmt.Printf(`- แสดงข้อความใช้ %s
   - แสดงตัวเลขใช้ %d
   - แสดงค่าของตัวแปรใช้ %v
   - แสดงชนิดของตัวแปรใช้ %T\n`,
           "ข้อความ",     // %s: แสดงข้อความ
           123,          // %d: แสดงตัวเลข
           "ใส่อะไรมาก็ได้", // %v: แสดงค่าของตัวแปร
           true)         // %T: แสดงชนิดของตัวแปร
   }

การรันโปรแกรม

ใน Go สามารถรันโปรแกรมได้ 2 วิธีหลัก ๆ คือ รันโปรแกรมโดยตรง และ คอมไพล์เป็น Binary File

  1. รันโปรแกรมโดยตรง

ใช้คำสั่ง go run เพื่อตรวจสอบและรันโค้ดทันที:

   go run main.go