Go Installation and Setup
Back to Go Index
Installation on Linux
Install on Linux
rm -rf /usr/local/go && tar -C /usr/local -xvf go1.20.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go versionตารางสรุปค่าที่ได้จาก go env

Project Setup
ถ้าเริ่มโปรเจคง่าย ๆ ใช้เอง
go mod init hello-worldถ้าเริ่มโปรเจคแบบมาตรฐาน ทำ Open source ต้องใส่เป็น repository host หรือ domain name
go mod init github.com/nattrio/hello-worldเสร็จแล้วมันจะไปสร้าง Go module คือไฟล์ go.mod เพื่อช่วยจัดการ packages และ dependency ต่าง ๆ โดยสามารถกำหนดเวอร์ชั่นได้ ทำให้การจัดการมีประสิทธิภาพมากขึ้น
หากต้องการโหลด dependency ที่ต้องการในโปรเจค หรือมีการแจ้งเตือนว่าจำเป็นต้องใช้ ให้ใช้คำสั่ง go mod tidy
Best Practices
- ชื่อไฟล์ของ go จะใช้เป็นตัวเล็กทั้งหมดและเว้นด้วย underscore เช่น cal_distance.go
- ชื่อฟังก์ชันภายใน go จะใช้เป็น camelCase เช่น sumOfNumber
- Entry point package คือ main
- ในแต่ละ package (folder) ควรมีไฟล์ที่ตั้งชื่อเดียวกันกับ package ข้างในด้วย เช่น movie/movie.go
Import
เราสามารถใส่ underscore _ วางไว้หน้า package เพื่อระบุว่าให้ import เข้ามาแม้จะยังไม่ใช้งาน เนื่องจากบาง package จะเริ่ม init() ตอนเรียกใช้
import (
_ "github.com/proullon/ramsql/driver"
)Package
เป็นโฟลเดอร์ที่เอาไว้ใส่ source files ใน directory เดียวกัน และ compile ด้วยกัน
- Field ขึ้นต้นด้วยตัวใหญ่ → Public (มองเห็นจากนอก package ได้)
- Field ขึ้นต้นด้วยตัวเล็ก → Private (มองเห็นเฉพาะภายใน package นั้นๆ)
// Public
func Review(name string, rating float64) {
fmt.Printf("!!! I reviewed %s and it's rating is %f\n", name, rating)
}
// Private
func review(name string, rating float64) {
fmt.Printf("!!! I reviewed %s and it's rating is %f\n", name, rating)
}See also: Go Syntax Basics
Init Function
init() คือ ฟังก์ชันที่จะถูกเรียกใช้งานทันที เมื่อมีการเข้าถึง package ใดๆ
func init() {
fmt.Println("This will get called on main initialization")
} // [1]
func main() {
fmt.Println("My Wonderful Go Program")
} // [2]Related: