ภาษา Go ตอน 1 ติดตั้ง และ Run Hello World
คืองี้เมื่อ ประมาณวันเสาร์ที่ 4 สิงหาคม 2561 ผมนั้นได้มีโอกาสไปเรียน Course ภาษา Go กับพี่ ยอด ที่ Geekly Base เป็น Course ที่ สอนพื้นฐานของ ภาษา Go ภายในวันเดียวจบ
จริงๆ ก็เคยเรียนกับพี่ยอดมาแล้ว 1 ครั้ง แต่ครั้งนั้นไปเรียนสาย เลยตามไม่ค่อยทัน ดังนั้น ครั้งนี้เลยเตรียมใจมาเต็มเปี่ยม เพื่อจะเรียน เข้าเรื่องกันเลยดีกว่า
เกริ่นเรื่องราวของภาษา Go
ภาษา Go นั้นเป็น Open Source ที่นิยามว่า รันง่าย เชื่อถือได้ และ มีประสิทธิภาพ พูดง่ายๆ คือมันเร็ว กว่าภาษาอื่นๆ ทั่วๆไป และตัวมันเองก็เบามาก เวลานำมาเขียนโปรแกรม
การติดตั้งภาษา Go
เริ่มจากการเข้าไปที่ URL : https://golang.org/dl/
โอเคเมื่อมาถึงหน้านี้มันก็จะมีตัวเลือกมาให้เราโหลดตามระบบปฏิบัติการที่เราใช้อยู่ ถ้าเป็น Windows ก็ กด go1.10.3.windows-amd64.msi ได้เลย มันก็จะให้เรา Install ด้วย GUI
แต่ผมนั้นใช้ Mac Os ผมจะ Download ด้วยวิธีอีกแบบนึง ก็คือ เลื่อนจอลงมาหน่อยก็จะเจอหน้าตาแบบนี้
เลือก Download ตามชื่อนี้ “go1.10.3.darwin-amd64.tar.gz” มันจะได้เป็น File Zip มาเดี๋ยวเราจะไปติดตั้งแบบนี้ด้วย Command Line กันแทน
หลังจาก Download เสร็จแล้วก็นำมาวางไว้ที่ Home Directory ของเรา
หลังจากนั้น เราจะใช้คำสั่ง “tar -xzf go1.10.3.darwin-amd64.tar.gz” เพื่อแตกไฟล์ไปที่ Current Directory ที่เราอยู่ ณ ขณะนั้น ก็คือ Home Directory นั้นเอง
tar -xzf go1.10.3.darwin-amd64.tar.gz
หลังจากแตกไฟล์เรียบร้อยแล้วเราจะได้ Directory ชื่อว่า go ขึ้นมาซึ่งอยู่ใน Path /Users/ชื่อ User ที่เราตั้งไว้แบบนี้
ถ้าเราลอง cd เข้าไปใน Directory go เราก็จะเห็นไฟล์ลักษณะหน้าตาประมาณนี้
โอเคทีนี้ เราจะยังไม่ได้ Go มาใช้งาน เราจะต้องกำหนดอะไรอีกเล็กน้อยเพื่อให้สามารถ ใช้คำสั่ง go run ได้ โดยเริ่มจาก
การกำหนด GOROOT
ก่อนที่จะไปกำหนด GOROOT เรามาเปลี่ยนชื่อ Directory ให้สื่อกันหน่อยดีกว่า จริงๆแล้ว ไอที่เรา Download และแตกไฟล์ออกมานั้นหละ มันคือ GOROOT เวลาเราจะ RUN อะไรก็แล้วแต่ มันก็จะใช้ GO Version นั้นๆ ใน GOROOT นี้มา Compile
ออกมาให้อยู่ใน Home Directory แล้วใช้คำสั่ง mv เพื่อเปลี่ยนชื่อ Directory
mv go goroot
หลังให้พิมพ์ใน Console ด้วย คำสั่งนี้
export GOROOT=~/gorootexport PATH=$PATH:$GOROOT/bin
*** เพื่อเติมเล็กน้อย การที่เรา export environment variable แบบนี้ มันจะเป็นการ add ค่า แบบชั่วคราว คือ ถ้าเราปิด Terminal และ เปิด Terminal มาใหม่ ค่าเหล่านี้มันจะหายไป ถ้าเราต้องการ ให้มันอยู่ถาวร ก็เอา code ส่วนนี้ไปใส่ใน bash_profile หรือ zshrc แล้วแต่เพื่อนๆ ใช้อะไรกันอยู่นะครับ ***
ทีนี้พอเรากำหนด GOROOT เสร็จแล้ว ถ้าถูกต้อง เราจะสามารถใช้คำสั่งนี้ได้
go env
เมื่อเราใช้คำสั่งนี้เราจะเห็น Environment Variable ของ Go ที่ Go ได้ Set เป็น Default ไว้ให้
การกำหนด GOPATH
GOPATH ก็คือ ที่อยู่ของที่ ที่เราจะสร้าง Project ที่เราจะทำงานด้วยภาษา Go นั่นเอง จากภาพด้านบน เราจะเห็นว่าโดย Default ของ ภาษา Go หลังจากกำหนด GOROOT เสร็จแล้ว
Go จะกำหนด GOPATH มาให้เราเรียบร้อยเลย ณ ที่นี้ก็คือ /Users/chaiyarin/go
เริ่มต้นสร้างโปรเจคแรก
การจะสร้างโปรเจคและทำงานด้วยภาษา Go นั้นเราจะจัดการใน GOPATH อย่างที่บอกไปก่อนหน้านี้ อะพร้อมแล้วก็ cd เข้าไปใน GOPATH ของเราเลย
เห้ยปรากฎว่า GOPATH ที่กำหนดเป็น Default ไว้มันยังไม่ได้ถูกสร้างขึ้นมานี่หน่า งั้นเรามาเริ่มต้นสร้างกันเลยครับ
สร้าง Directory go ไว้ที่ Home Directory
mkdir go
พอสร้างเสร็จเราก็ cd go เข้าไปครับ พอเข้าไปแล้ว ls ดูมันก็จะว่างๆ ไม่มีอะไร ให้เราสร้าง ขึ้นมาอีกหนึ่ง Directory ครับ ชื่อว่า src
mkdir src
Directory src มีเอาไว้สำหรับเก็บ Project go ของเรานั้นเอง งั้นเราลองมา สร้างโปรเจคขำๆ ใน Directory src กัน เริ่มจาก cd เข้าไปใน Directory src ก่อน
แล้ว สร้าง Directory helloworld มาเลย สร้างเสร็จแล้วก็ cd เข้าไปเลยนะครับ
mkdir helloworld
เพราะฉะนั้น ตอนนี้เราอยู่ใน Path นี้แล้วนะครับ
/Users/chaiyarin/go/src/helloworld
โอเคต่อมาสร้างไฟล์นึง ชื่อว่า main.go ภายใต้ Directory helloword และภายในไฟล์ main.go จะต้องประกอบไปด้วย Code สองส่วนคือ ส่วนของ package กับ ส่วนของ function main
โดยเพื่อนๆ สามารถ Copy Source Code ข้างล่างนี้แล้วนำไปใส่ในไฟล์ main.go ได้เลย
package mainfunc main() {
println("Hello World")
}
ใส่ Source Code ที่ว่าเสร็จแล้วกด Save เลยครับ พอ Save เสร็จแล้วก็สั่ง run ด้วยคำสั่ง
go run main.go
พิมพ์เสร็จแล้วกด Enter แรงๆ สักทีครับ ตอนนี้เราก็จะได้ผลลัพธ์ Hello World จากภาษา Go แล้ว เย้
ง่ายมากเลย ใช่ไหมหละครับเพื่อนๆ สำหรับการ ติดตั้งและ สร้างโปรเจคแรกของภาษา Go
ถัดมาเราจะเรียนรู้การสร้าง ที่อยู่ของโปรเจคภาษา Go ที่ Github ได้แนะนำเอาไว้ สำหรับการสร้างแบบนี้ เหมาะสำหรับ Developer ที่ใช้ Github ซึ่งเราก็ใช้กันทุกคนนั้นหละ ใครไม่ใช้กันบ้าง 555 มาลุยกันต่อเลยครับ
การสร้าง Path ของ Project ในภาษา Go ที่ Github แนะนำ
คืองี้ เมื่อกี้เราสร้างโปรเจคของเรานั้นไว้ภายใต้ /Users/chaiyairn/go/src/helloword โดยตรงเลยถูกต้องไหมครับ แต่สมมติถ้าเราใช้ Version Control โดยเฉพาะของ GitHub
เราควรจะสร้างโปรเจคของเรา ให้มันเป็นลำดับชั้นแบบนี้ครับ
/Users/chaiyarin/go/src/github.com/ชื่อ username github ของเรา/ชื่อ Project
มองเป็นแบบ Tree ก็จะได้มุมมองประมาณนี้
ส่วนทำไมถึงต้องตั้งโครงสร้างแบบนี้ มีข้อดีอย่างไร เดี๋ยวจะอธิบายในหัวข้อถัดไป เพราะมันจะมีเรื่องของการใช้ คำสั่ง
go get -d github.com/chaiyarin/
อะไรทำนองนี้ไว้จะเล่าให้ฟังทีหลัง แต่สร้างแบบนี้ไปก่อนครับ เพราะเราจะใช้หลังจากนี้กันยาวๆ
โอเคหลังจากย้าย Directory helloworld ของพวกเราไปไว้ภายใต้/Users/chaiyarin/go/src/github.com/ชื่อ username github ของเรา/helloworld ของแต่ละคนแล้ว cd เข้าไปใน helloworld ลองใช้ คำสั่ง
go run main.go
อีกครั้ง ก็ยังคงต้องสามารถ run ได้เหมือนเดิม
การ Build Source Code
โอเค เมื่อเราได้โปรแกรมที่เราต้องการเรียบร้อย และเราอยากเอา โปรแกรมที่เขียนด้วยภาษา Go ไป run บนเครื่องอื่นบ้าง ทำยังไงดีหละ
สามารถทำได้ง่ายๆ เลยด้วยคำสั่งนี้
go build
หลังจากสั่งคำสั่งนี้ สิ่งที่เราจะได้ก็คือ ตัว Application ชื่อ helloworld ที่ถูก Execute ออกมา พร้อมนำไปใช้งานที่เครื่องอื่นแล้ว
วิธีการ Run ตัว Application ที่ Build ออกมาแล้ว ก็สามารถ Run ด้วยคำสั่งที่ ใช้ Run App บน Linux หรือ Mac ได้เลย โดยใช้ Command นี้
./helloword
สิ่งที่ได้หลังจากการ ใช้คำสั่งนี้ก็คือ มันจะ แสดงผลเหมือนกับผลลัพธ์ก่อน Build เลย
เห้ย และมันก็สามารถ Build ไป Run บน Windows ได้ด้วยนะ ด้วยคำสั่ง
env GOOS=windows GOARCH=amd64 go build
GOOS คือ เลือกระบบปฏิบัติการที่จะ Build
GOARCH คือ สถาปัตยกรรมของ CPU ที่จะ Build
พอ run คำสั่งดังกล่าวไป เราก็จะได้เป็นไฟล์ helloworld.exe เพื่อเอาไป run บน Windows แล้วววครับบ
ขอจบตอนแรกเพียงเท่านี้ บ๊ายบายย เจอกันตอน 2
- ** ตอน 2 จะเป็นในเรื่องของการประกาศตัวแปร การใช้ For Loop คือแทบจะครบชุดเกี่ยวกับวิธีการเขียนโปรแกรมพื้นฐานโดยใช้ ภาษา Go ****