สวัสดีครับสําหรับบทความนี้เป็นเรื่องราวเกี่ยวกับการเริ่มต้นเรียนรู้ภาษา Go ว่ามีความเป็นมาอย่างไร และเริ่มต้น Coding ด้วยภาษา Go จะต้องเริ่มต้นอย่างไร
Go เป็นภาษาที่ถูกเริ่มต้นพัฒนาในปี 2007 โดย Robert Griesemer, Rob Pike และ Ken Thompson และเปิดตัวในปี 2009 โดยเปิดเป็น Open Sorce และได้รับความนิยมขึ้นมาเรื่อยๆจนถึงปัจจุบัน เนื่องจากภาษา Go เป็นภาษาที่เกิดมาที่หลังจึงทําให้นําเอาข้อดี ข้อเสียของภาษาอื่นๆมาปรับใช้ทําให้ภาษา Go เขียนง่าย, กระชับ และมีประสิทธิภาพที่ดี
คือมีการแปล Source Code ทั้งหมดให้กลายเป็น ภาษาเครื่อง (Executable File) ซึ่งเครื่องคอมพิวเตอร์สามารถนำไปรันได้ทันที ไม่ต้องแปลคำสั่งใหม่ทุกครั้งที่รัน เหมือนพวก Node.js, Java ฯลฯ ทําให้ทํางานได้เร็ว และเบามากๆ
ภาษาโกมีการใช้ Garbage Collector สำหรับเคลียร์ตัวแปร หรืออ็อบเจคที่ไม่ถูกใช้งานแล้ว ออกจากหน่วยความจำ โดยเราไม่ต้องไปจัดการเอง
ภาษา Go เป็น Static language หมายความว่าการประกาศตัวแปรจะต้องระบุชนิดของข้อมูลเสมอ และสามารถตรวจสอบชนิดของข้อมูลได้ตั้งแต่ขั้นตอน Compile ซึ่งจะไม่เหมือนกับภาษาอื่นๆที่เป็น Dynamic-Type เช่น Python, JavaScript, PHP ซึ่งถ้าไม่ได้ระวังอาจจะเกิด Bug หรือ Error บน Production ได้
เราจะเริ่มต้นด้วยการ Download Compiler ของ Go มาติดตั้งในเครื่องก่อนครับ โดยเข้าไปโหลดได้ที่เว็บของ Go โดยตรงที่นี่ครับ https://golang.org/dl/
เมื่อติดตั้งเรียบร้อย ก็ได้ถึงเวลาเขียนโปรแกรมแรกด้วยภาษา Go กันครับ Hello Go
ให้สร้างไฟล์ main.go ขึ้นมา และเขียน Code ดังนี้
package main
import "fmt"
func main() {
fmt.Println("Hello Go")
}
หลังจากนั้นสามารถสั่งรันโปรแกรมได้ด้วยคำสั่งนี่ครับ
$ go run main.go
ก็จะเห็นผลลัพธ์เป็นคําว่า Hello Go ขึ้นมา
ถ้าหากต้องการจะ Build ออกมาเป็นไฟล์ Binary หรือ compile เป็นภาษาเครื่อง เพื่อนําไปรันใช้งานจริงๆ ก็สามารถใช้คําสั่งนี้ได้เลยครับ
$ go build main.go
หลังจากใช้คําสั่งนี้ Compiler ของ Go ก็จะแปลง Code ของเราเป็นภาษาเครื่อง และได้เป็นไฟล์ Binary เพื่อนําไปรันได้เลย
ถึงจุดนี้เราก็ได้เรียนรู้เกี่ยวกับภาษา Go เบื้องต้น และได้ลองเขียนโปรแกรมแรกกันไปแล้ว สําหรับในบทความต่อไปเราก็จะไปทําความรู้จักกับ Go module โดยสามารถอ่านต่อได้เลยครับที่นี่ Go EP.2 ทําความรู้จักกับ Go module
ที่มา:
จากบทความ C++ OOP การสร้าง Class และการใช้งาน Class ผมอธิบายถึงการสร้าง Object แบบ Stack แต่ในบทความนี้ผมจะอธิบายเรื่องการสร้าง Object โดยใช้ Pointer ข้อแตกต่างกันคือ การสร้าง Object แบบ Stack จะคล้ายๆกับเราสร้างตัวแปรขึ้นมาตัวนึงเมื่อใช้งานเสร็จหรือจบโปรแกรม ระบบจะคืน memory หรือทําลาย Object นั้นทิ้งให้โดยอัตโนมัติ แต่ถ้าสร้าง Object แบบ Pointer จะไม่ทําลาย Object ให้เราเมื่อจบโปรแกรม เราจะต้องเป็นคนทําลาย Object เอง ทําสั่งที่ใช้ ทําลาย Object คือ "delete" ตามด้วย Object ที่ต้องการลบ _ถ้าเราไม่ลบ Object ที่เราสร้างขึ้น ระบบจะไม่สามารถเข้าใช้งาน memory ในส่วนนั้นได้ ทําให้เกิด memory leak _
Storage Class คือ สิ่งที่ใช้กําหนดขอบเขตของตัวแปรว่าจะให้ใครสามารถเข้ามาเรียกใช้งานได้บ้าง และยังสามารถกําหนดระยะเวลาว่าจะให้โปรแกรมเก็บค่าของตัวแปรนั้นไว้นานเท่าไรได้ด้วย Storage Class แบ่งออกเป็น 4 ประเภท คือ
การ setting wifi ของ raspberry pi มีวิธีดังนี้ เริ่มแรก scan wifi ก่อนเพื่อดูว่า มี wifi ตัวไหนที่สามารถเชื่อมต่อได้บ้าง ด้วยคําสั่งนี้