สำหรับการเขียนโปรแกรมนั้นเชื่อว่าทุกคนอยากให้ code มีความสั้น กระชัด และอ่านง่าย สำหรับภาษา Dart นั้นก็มี syntax การเขียนรูปแบบย่อหรือแบบลดรูปมาให้เช่นเดียวกับภาษาอื่นๆ มีอะไรบ้างนั้น ไปดูพร้อมกันเล๊ยยยย
*** สามารถคลิกที่ ViewCode เพื่อเปิดดู code และลอง run ผ่านเว็บได้เลย :)
?: (Ternary Operator)
รูปย่อของ if ที่น่าจะคุ้นเคยกันในหลายๆภาษา เช่น php , javascript
- รูปแบบคือ condition? true : false
การเขียนรูปแบบทั่วไป
bool isLogin = false;
String message = "";if(isLogin) {
message = "Welcome";
} else {
message = "Please login";
}
การเขียนรูปแบบย่อ
bool isLogin = false;
String message = isLogin ? "Welcome" : "Please login";
?? (Null coalescing operator)
รูปย่อของการตรวจสอบค่า null ของตัวแปร ถ้ามีค่าเป็น null จะใช้ค่า default แทน
- รูปแบบคือ variable ?? default value
String name;print(name ?? "NottDev"); // => NottDev
?. (Null conditional)
เมื่อเราต้องการเข้าถึง field หนึ่งใน object แต่ไม่แน่ใจว่า object นั้น null หรือไม่? เราสามารถใช้ ?. มาช่วยได้
- รูปแบบคือ referenceVariable?.variable
void main() { var student = Student();
print(student?.address?.province ?? 'Bangkok');}class Student {
String name;
Address address;
}class Address {
String province;
}
??= (null coalescing assignment operator)
รูปย่อของการตรวจสอบค่า null ของตัวแปร ถ้ามีค่าเป็น null จะ assing ค่า default ให้ตัวแปรนั้น
- รูปแบบคือ variable ??= default
การเขียนรูปแบบทั่วไป
String name;if(name == null) {
name = "NottDev";
}
การเขียนรูปแบบย่อ
String name;name ??= "NottDev"; // name = name ?? "NottDev";
=> (Arrow notation)
รูปย่อของ function/method ที่มีการทำงานบรรทัดเดียวและ return ค่า
- รูปแบบคือ functionName() => value;
การเขียนรูปแบบทั่วไป
String lowerCase(String s) {
return s.toLowerCase();
}
การเขียนรูปแบบย่อ
String lowerCase(String s) => s.toLowerCase();
.. (Cascade notation)
รูปย่อของการ assign ค่าให้ instance จากเดิมที่เราต้องเขียน ชื่อ instance ซ้ำๆ
- รูปแบบคือ ..instanceVariable = value
การเขียนรูปแบบทั่วไป
Student student = Student();
student.name = "NottDev";
student.age = 14;
student.grade = 3.12";
การเขียนรูปแบบย่อ
Student student = Student()
..name = "NottDev"
..age = 14
..grade = 3.12;
~/ (Floored integer division)
รูปย่อของการหารค่าที่มีทศนิยมแล้ว cast ผลลัพธ์เป็น integer ให้อัตโนมัติ
- รูปแบบคือ num~/num
การเขียนรูปแบบทั่วไป
double num1 = 10.00;
double num2 = 3.00;
int floor = (num1 / num2).toInt();print(floor); // 3
การเขียนรูปแบบย่อ
double num1 = 10.00;
double num2 = 3.00;
int floor = num1 ~/ num2;print(floor); // 3
… (Spread operator)
รูปย่อของการกระจาย (Spread) สมาชิกใน Array Map/Object หรือ String ไปสู่ Element หรือ ตัวแปรเป้าหมายที่เราต้องการได้
- รูปแบบคือ [a, b, c, … [d, e] ]
Array
List<int> list = [1,2,3];
List<int> newList = [...list, 4, 5]; // [1, 2, 3, 4, 5]
Map/Object
var student = {'name': 'NottDev', 'age': 24};var newStudent = {'grade': 3.12, ...student }; // {grade: 3.12, name: NottDev, age: 24}
Spread operator สามารถใช้ได้ตั้งแต่ Dart เวอร์ชั่น 2.3 ขึ้นไป
Reference:
(ข้อมูลอาจมีข้อผิดพลาด ถ้าจะเอาบทความนี้ไปอ้างอิงที่อื่นให้ตรวจสอบให้ดีก่อนนะครับ ขอบคุณครับ)
สำหรับวันนี้ ต้องขอลาไปก่อน สวัสดีครับ NottDev :)