Dart lang : Ep.1 (variable)

Grassroot Engineer
2 min readMar 29, 2020

--

https://dart.dev/

ภาษา Dart เป็นภาษาที่พัฒนาโดย Google นะคับ ตามสโลแกนของเขา

“Dart is a client-optimized language for fast apps on any platform

play_circle_filledWatch video”

ภาษานี้สามารถใช้งานได้ทั้งสร้าง web, app นะคับในทุกๆ platform เลย แต่สำหรับ article นี้จะมานำเสนอ basic syntax กันก่อนนะคับ

สำหรับเพื่อนๆที่สนใจ สามารถเข้าไปทดสอบ Dart online ได้ที่ https://dartpad.dev/ นะคับ

Variable Declaration: ในการกำหนดค่าตัวแปร เราสามารถระบุ data type หรือ ไม่ระบุก็ได้นะคับในกรณีที่เรายังไม่รู้ (แต่การไม่ระบุ data type จะต้อง aware ในเรื่องของการควบคุมตัวแปรต่างๆใน scope ให้ดี)

ในกรณีที่ต้องการ access เข้าไปในตัวแปรเพื่อดูค่าของตัวแปร ถ้าทำใน quote (‘’) จะต้องนำหน้าด้วย ‘$’ นะคับ ดังตัวอย่างด้านล่าง

var test1 = 'Grassroot';print(test1);  // Grassroot : แบบนี้จะได้ Grassroot
print('test1'); // test1 : แบบนี้จะได้ test1 เป็นการ print String ทั่วไป
print('$test1'); // Grassroot : จะเป็นการเข้าถึงค่าด้านใจตัวแปรอีกทีนะคับ
ถ้าต้องการดุ type ของตัวแปร ให้ใช้คำสั่ง .runtimeType นะคับ

สำหรับตัวแปรแบบค่าคงที่นะคับ จะมีอยู่ 2 ตัวคือ final และ const ซึ่งมีทั้งสิ่งที่เหมือนกันและแตกต่างกัน เด๋วผมจะอธิบายให้ฟังคับ

สำหรับตัวแปรแบบ const และ final มันคือ ค่าคงที่นะคับ เมื่อกำหนดค่าให้มันแล้วจะไม่สามารถไปแก้ไขได้อีก

แต่การใช้งานจะต่างกันคือ
final : เป็นตัวแปรที่รอการรับค่าเข้ามา ซึ่งเป็นค่าคงที่เหมือนกัน แต่วัตถุประสงค์คือ เอาไว้รับค่าจากที่ไหนก็ตาม และไม่ต้องการให้เปลี่ยนแปลงได้ระหว่าง process ฉะนั้นตัวแปรแบบนี้จะยังไม่ถูกจอง memory จะกว่าจะมีการเรียกใช้

const: เป็นตัวแปรค่าคงที่เช่นเดียวกัน ที่ถูกจอง memory ไว้ทันทีที่ compile เสร็จเลย และค่านี้จะเปลี่ยนแปลงไม่ได้เช่นเดียวกัน ซึ่งมักเป็นค่าตั้งต้นตั้งแต่แรกเลย

สำหรับตอนนี้เราก็เข้าใจเรื่อง ตัวแปรแบบเปลี่ยนแปลงค่าได้และเปลี่ยนแปลงค่าไม่ได้, ระบุ Type และ ไม่ได้ระบุ Type นะคับ เด๋วตอนหน้าจะมาต่อเรื่อง ตัวแปรแบบ dynamic, Object และ Function Declaration นะคับ

--

--

Grassroot Engineer
Grassroot Engineer

Written by Grassroot Engineer

ATM engineer who is interested in CODING and believe in EFFORT. — https://grassrootengineer.com

No responses yet