ภาษา Go ตอน 1 ติดตั้ง และ Run Hello World

Chaiyarin Niamsuwan
odds.team
Published in
4 min readAug 13, 2018

คืองี้เมื่อ ประมาณวันเสาร์ที่ 4 สิงหาคม 2561 ผมนั้นได้มีโอกาสไปเรียน Course ภาษา Go กับพี่ ยอด ที่ Geekly Base เป็น Course ที่ สอนพื้นฐานของ ภาษา Go ภายในวันเดียวจบ

จริงๆ ก็เคยเรียนกับพี่ยอดมาแล้ว 1 ครั้ง แต่ครั้งนั้นไปเรียนสาย เลยตามไม่ค่อยทัน ดังนั้น ครั้งนี้เลยเตรียมใจมาเต็มเปี่ยม เพื่อจะเรียน เข้าเรื่องกันเลยดีกว่า

เกริ่นเรื่องราวของภาษา Go

ภาษา Go นั้นเป็น Open Source ที่นิยามว่า รันง่าย เชื่อถือได้ และ มีประสิทธิภาพ พูดง่ายๆ คือมันเร็ว กว่าภาษาอื่นๆ ทั่วๆไป และตัวมันเองก็เบามาก เวลานำมาเขียนโปรแกรม

การติดตั้งภาษา Go

เริ่มจากการเข้าไปที่ URL : https://golang.org/dl/

หน้าจอ Download Go Language

โอเคเมื่อมาถึงหน้านี้มันก็จะมีตัวเลือกมาให้เราโหลดตามระบบปฏิบัติการที่เราใช้อยู่ ถ้าเป็น Windows ก็ กด go1.10.3.windows-amd64.msi ได้เลย มันก็จะให้เรา Install ด้วย GUI

แต่ผมนั้นใช้ Mac Os ผมจะ Download ด้วยวิธีอีกแบบนึง ก็คือ เลื่อนจอลงมาหน่อยก็จะเจอหน้าตาแบบนี้

Optional สำหรับการ Download Go Language

เลือก Download ตามชื่อนี้ “go1.10.3.darwin-amd64.tar.gz” มันจะได้เป็น File Zip มาเดี๋ยวเราจะไปติดตั้งแบบนี้ด้วย Command Line กันแทน

หลังจาก Download เสร็จแล้วก็นำมาวางไว้ที่ Home Directory ของเรา

จะได้ go1.10.3.darwin-amd64.tar.gz อยู่ใน 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 ที่เราตั้งไว้แบบนี้

จะพบ Directory go หลังจากแตกไฟล์

ถ้าเราลอง cd เข้าไปใน Directory go เราก็จะเห็นไฟล์ลักษณะหน้าตาประมาณนี้

เมื่อเข้ามาก็จะพบไฟล์ Source Code ของ ภาษา 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 ไว้ให้

เมื่อกำหนด GOROOT สำเร็จและใช้คำสั่ง go env จะเห็นเป็นหน้าตาแบบนี้

การกำหนด GOPATH

GOPATH ก็คือ ที่อยู่ของที่ ที่เราจะสร้าง Project ที่เราจะทำงานด้วยภาษา Go นั่นเอง จากภาพด้านบน เราจะเห็นว่าโดย Default ของ ภาษา Go หลังจากกำหนด GOROOT เสร็จแล้ว

GOPATH โดย Default หลังจากกำหนด 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 run main.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 ก็จะได้มุมมองประมาณนี้

ลำดับของการสร้างที่อยู่ของโปรเจค โดยคำแนะนำของ github.com

ส่วนทำไมถึงต้องตั้งโครงสร้างแบบนี้ มีข้อดีอย่างไร เดี๋ยวจะอธิบายในหัวข้อถัดไป เพราะมันจะมีเรื่องของการใช้ คำสั่ง

go get -d github.com/chaiyarin/

อะไรทำนองนี้ไว้จะเล่าให้ฟังทีหลัง แต่สร้างแบบนี้ไปก่อนครับ เพราะเราจะใช้หลังจากนี้กันยาวๆ

โอเคหลังจากย้าย Directory helloworld ของพวกเราไปไว้ภายใต้/Users/chaiyarin/go/src/github.com/ชื่อ username github ของเรา/helloworld ของแต่ละคนแล้ว cd เข้าไปใน helloworld ลองใช้ คำสั่ง

go run main.go

อีกครั้ง ก็ยังคงต้องสามารถ run ได้เหมือนเดิม

เมื่อเปลี่ยนโครงสร้างของโปรเจคแล้ว ก็คงยังต้อง run ได้เหมือนเดิม

การ Build Source Code

โอเค เมื่อเราได้โปรแกรมที่เราต้องการเรียบร้อย และเราอยากเอา โปรแกรมที่เขียนด้วยภาษา Go ไป run บนเครื่องอื่นบ้าง ทำยังไงดีหละ

สามารถทำได้ง่ายๆ เลยด้วยคำสั่งนี้

go build

หลังจากสั่งคำสั่งนี้ สิ่งที่เราจะได้ก็คือ ตัว Application ชื่อ helloworld ที่ถูก Execute ออกมา พร้อมนำไปใช้งานที่เครื่องอื่นแล้ว

หลังจากสั่ง build จะได้ ไฟล์ที่ถูก Execute ออกมา คือ helloworld

วิธีการ Run ตัว Application ที่ Build ออกมาแล้ว ก็สามารถ Run ด้วยคำสั่งที่ ใช้ Run App บน Linux หรือ Mac ได้เลย โดยใช้ Command นี้

./helloword

สิ่งที่ได้หลังจากการ ใช้คำสั่งนี้ก็คือ มันจะ แสดงผลเหมือนกับผลลัพธ์ก่อน Build เลย

ผลลัพธ์จากการ Run โปรแกรม Hello World ที่ถูก Execute แล้ว

เห้ย และมันก็สามารถ 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 ****

--

--