Variable ในภาษา GO
อะไร คือ Variable ในภาษา GO ?
Type => คือรูปของข้อมูลที่จะเก็บ
Value => ค่าที่เก็บอยู่ใน variable
Address => ตำแหน่งของ address ที่อยู่ใน memory ของเครื่อง
ทำไมเราถึงต้องใช้ Variable?
ค่าอื่นๆที่อยู่ในโปรแกรมเรานั้นส่วนใหญ่เก็บค่าแบบ static เราไม่สามารถเปลี่ยนแปลงได้ แต่ Variable นั้นค่อนข้างที่จะเป็น dynamic สามารถกำหนดค่า ดึงค่าแม้กะทั้งใช้ตัวเดิมซ้ำได้
ในภาษา GO ไม่ Type อะไรให้ใช้บ้าง?
ในภาษา GO มีทั้งหมด 20 Type ให้ใช้งาน
(ข้อมูลตารางจาก : https://medium.com/rungo/variables-and-constants-in-go-programming-c715443fa788)
วิธีประกาศ Variable
- Long declaration ใช้คำว่า
var
นำหน้าตามด้วย ชื่อ ตามด้วย Type ตัวภาษาจะเซตค่าให้เป็น default หรือเรียกว่า zero value
var productName string
var price float64
var amount int
2. Short declaration ใช้ :=
เป็น key โดยมีรูแบบ ชื่อ :=
ค่าของตัวแปร ตัวของภาษาจะใส่ Type ให้เราเอง
productName := "huawei p20" // type string
price := 20000.00 // type float64
amount := 10 // typr int
3. Multiple declaration ใช้ var
แล้วก็มีวงเล็บครอบ
var (
productName string
price,amount = 20000.00,10
)
productName เป็น Type string มีค่าเป็น “”
price เป็น Type float64 มีค่าเป็น 20000.00
amount เป็น Type int มีค่าเป็น 10
4. Short multiple declaration
prdoctName,prince,amount := "huawei p20",20000.00,10
productName เป็น Type string มีค่าเป็น “huawei p20”
price เป็น Type float64 มีค่าเป็น 20000.00
amount เป็น Type int มี่ค่าเป็น 10
Zero Value
ในภาษา GO ถ้าประกาศตัวแปรแล้วไม่มีการกำหนดค่าให้ตัวภาษาจะใช้ค่า Default ให้ เพื่อให้โปรแกรมมีความถูกต้องมากที่สุดและป้องกัน error ที่เกิดจากค่า nil ซึ่งแต่ละ Type มีค่า Default แตกต่างกันเช่น
type int default 0
type float default 0.00
type string default ""
type bool default fales
ตอนไหนเราควรจะประกาศ variable แบบไหน?
เราจะประกาศตัวแปรแบบ long เมื่อเราไม่รู้ค่าเริ่มต้นที่ชัดเจน และเราจะใช้การประกาศแบบ short หรือ multiple เมื่อรู้ว่าตัวแปรนั้นๆมีค่าเป็นเท่าไร
แต่การประกาศแบบ short จะไม่สามารถประกาศนอกฟังก์ชันได้และไม่สามารถใช้นอก package ได้