เป้าหมายของ Blog นี้ เพื่อให้ผู้อ่านได้เห็นภาพรวม และเป้าหมายที่จะได้จาก Blog นี้
- ต้องเข้าใจ Component ของ Go ก่อน
- ใช้งาน Values และ Type
- สร้าง และ รัน Function
- ควบคุมการไหลของโปรแกรมด้วย Control Structures
Key Component Go Programming
จากตัวอย่าง โค้ด Basic เบื้องต้นนี้ จะเห็น Component หลักของภาษา Go ทั้งหมด
package main <-- ชื่อ package บงบอกว่า อยู่ใน package ชื่อว่าอะไร
import "fmt" <-- เป็นการเรียกใช้ package อื่นๆ
func main() {
fmt.Print("Hello World") <-- เรียกใช้ function Print ที่อยู่ใน package `fmt`
}
Code language: Go (go)
Note Go lang ใช้ double quotes “ “ อย่างเดียว หรือ backtick ` `
โดยอย่างน้อยใน 1 application ต้องมี 1 package นั่นก็คือ package main

และสามารถมี หลายๆ package ได้ เพื่อที่จะ organize code ให้ดี เป็นสัดสวนแล้วนำกลับมา reuse ได้อีกครั้ง

ถ้าเรามีหลายๆโปรเจ็ค เราสามารถนำ package ที่เคยเขียนกลับมา reuse ใช้ซ้ำได้

เราสามารถค้นหา Package Standard ของ Go ได้จาก https://pkg.go.dev/std

Main Package and Main Function
main package เป็น Package พิเศษ ที่จะบอก Go ว่า จะเป็นจุดเริ่มต้นของโปรแกรม และ function main จะเป็น function แรกที่จะเริ่ม excute
package main <-- ชื่อ package บงบอกว่า อยู่ใน package ชื่อว่าอะไร
import "fmt" <-- เป็นการเรียกใช้ package อื่นๆ
func main() {
fmt.Print("Hello World") <-- เรียกใช้ function Print ที่อยู่ใน package `fmt`
}
Code language: Go (go)
โดยเวลา Develop เราจะบอกว่า file ไหนที่เรา exclute
go run main.go
Code language: Bash (bash)
แต่พอเอาไปใช้งานจริง ถ้าไม่มี package main และ function main ไฟล์ binary ที่เรา build หลังจาก Develop เสร็จนั้น จะหาจุดเริ่มต้นของโปรแกรมไม่เจอ
go build
Code language: Bash (bash)
Go Modules and Go Build
Main Module ของ Go จะเป็นตัวช่วยบอก Go Package ว่า Package แต่ละอันที่นำมาใช้อยู่ที่ไหน
โดยก่อนเริ่มโปรเจ็คควรสร้าง Go Module ก่อน เป็นอันดับแรก
go mod init <Github url>
Code language: Bash (bash)
ด้วยที่ตามหลังมาจะเป็น path
เช่น
Github Url ถ้า ต้องการที่จะทำเป็น Third Party library
หลังจากสร้าง จะได้ไฟล์ที่ชื่อว่า go.mod
module example.com/first-app
go 1.21.2
Code language: Go (go)
โดยสิ่งที่ go module บอกนั้น จะบอกว่า โค้ดที่อยู่ใน folder นี้จะอยู่ใน Module ชื่อ example.com/first-app
และจะบอกด้วยว่า มี Library จาก Module ที่ไหนบ้างที่เอามาใช้
ตัวอย่างที่มี Module อื่นๆที่ใช้
module example.com/first-app
go 1.21.2
require (
github.com/andybalholm/cascadia v1.3.3 // indirect
)
Code language: Go (go)
หลังจากที่มี Go module เรียบร้อยแล้ว เราก็จะสามารถสร้าง Executable ได้
go build
Code language: Go (go)
โดยเราจะได้ Execute table ตามสถาปัตยกรรมที่ใช้ Build เช่น ใช้ Window Build จะได้ .exe
โดยที่ คนที่นำ Execute table ไปใช้ ไม่จำเป็นต้องติดตั้ง Golang
Tip
การตั้งชื่อไฟล์ ใน Go ถ้าชื่อยาว มักใช้ underscores ในการแบ่งคำของชื่อไฟล์
Leave a Reply