1. สรุปแนวคิดสำคัญ (5–10 นาที)
ใน Dart เราสามารถประกาศตัวแปรได้หลายรูปแบบ แต่ละคีย์เวิร์ดมีหน้าที่และข้อจำกัดที่ต่างกันอย่างชัดเจน:
Dart จะเดา Type ให้อัตโนมัติจากค่าเริ่มต้น และเปลี่ยนค่าในภายหลังได้ แต่ต้องเป็น Type เดิมเท่านั้น เช่น var age = 20; age = 21;
เมื่อกำหนดค่าแล้ว ห้ามเปลี่ยนค่าเด็ดขาด เหมาะสำหรับค่าที่รู้หลังโปรแกรมเริ่มทำงานแล้ว เช่น เวลาปัจจุบัน final now = DateTime.now(); หรือข้อมูลจากการยิง API
ต้องรู้ค่าแน่นอน ตั้งแต่ก่อนรันโปรแกรม เช่น ค่าพาย const double pi = 3.14159; ใน Flutter นิยมใส่ const หน้า Widget เพื่อช่วยประหยัด Memory และ CPU
| คีย์เวิร์ด | เปลี่ยนค่าได้ไหม? | เวลาที่รู้ค่า |
|---|---|---|
| var | ได้ (Type เดิม) | ตอนประกาศ |
| final | ไม่ได้ (ครั้งเดียว) | Run-time (ตอนรัน) |
| const | ไม่ได้ (ถาวร) | Compile-time (ก่อนรัน) |
const double pi = 3.14159;
final String appName = 'CircleMaster';
var radius = 7.0;
double area = pi * radius * radius;
print('$appName: พื้นที่รัศมี $radius = $area ตร.ซม.');
ควิซเช็กความเข้าใจ (Quick Quiz)
1 ข้อสั้นๆคำสั่งใดต่อไปนี้จะทำให้ Dart แจ้ง Compile Error ทันทีตั้งแต่ยังไม่เริ่มรันโปรแกรม?
โจทย์ประจำวัน: โปรแกรมคำนวณพื้นที่วงกลมด้วย const & final
เขียนโค้ดในฟังก์ชัน main() ตามเงื่อนไขต่อไปนี้:
1) ประกาศค่าคงที่คงวา const double pi = 3.14159;
2) ประกาศตัวแปร var radius กำหนดรัศมี เช่น 7.0
3) ประกาศตัวแปร final double area หรือ final area คำนวณพื้นที่ (pi * radius * radius)
4) ใช้ print() แสดงรัศมีและพื้นที่วงกลมด้วย String Interpolation
5) (ทางเลือก) ทดลองพิมพ์ pi = 3.14; เพื่อดูตัวตรวจจับ Error ป้องกันการแก้ค่าคงที่
2
3
4
5
6
7
8
9
10
11
ตรวจรับการบ้านประจำวัน Day 4
มี const pi, var radius, final area และแสดงผลพื้นที่วงกลม