Variable ในภาษา GO

อะไร คือ Variable ในภาษา GO ?

Smalldog124
2 min readMay 15, 2019
(https://cdn-images-1.medium.com/max/1600/1*9TfM27i8XsSnTHfAEA92Ww.png)

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

  1. 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 ได้

--

--

No responses yet