เรียนรู้การเก็บค่าในตัวแปรที่มีชนิดกำกับ เขียนฟังก์ชัน และทำความเข้าใจการป้องกันจาก null
เปิดบทเรียนนี้ใน Kodokonก่อนจะสร้างหน้าจอ มาเรียนรู้พื้นฐานของ Dart ภาษาของ Flutter กันก่อน ตัวแปร (variable) คือกล่องที่มีป้ายชื่อในหน่วยความจำของคอมพิวเตอร์ ซึ่งคุณเก็บค่าไว้เพื่อนำกลับมาใช้ใหม่ในภายหลัง ใน Dart ตัวแปรทุกตัวมี ชนิด (type): ลักษณะของสิ่งที่มันเก็บได้ ชนิดที่พบบ่อยที่สุดสี่ชนิดได้แก่ int (จำนวนเต็ม เช่น 28), double (จำนวนทศนิยม เช่น 1.65), String (สายอักขระ หรือก็คือข้อความที่อยู่ในเครื่องหมายคำพูด) และ bool (ค่าบูลีน: true หรือ false) คำสงวน var ให้ Dart หาชนิดเองจากค่าที่คุณกำหนดให้
void main() {
var name = "Camille";
int age = 28;
double height = 1.65;
bool isStudent = true;
print(name);
print(age);
print(height);
print(isStudent);
}print แสดงค่าออกมาที่ คอนโซล (console) พื้นที่ข้อความที่โปรแกรมเขียนข้อความของมันออกมา: มีประโยชน์มากสำหรับตรวจสอบว่ากำลังเกิดอะไรขึ้น ในการแทรกตัวแปรลงกลางข้อความ Dart มี การแทรกค่า (interpolation) ให้ใช้: วางสัญลักษณ์ $ ไว้หน้าชื่อตัวแปร โดยตรงภายในสายอักขระ อีกคำสงวนที่มีประโยชน์คือ final ซึ่งประกาศตัวแปรที่ ไม่มีวันเปลี่ยนได้อีก หลังจากรับค่าแรกไปแล้ว: ใช้มันทันทีที่ค่าใดไม่ควรเปลี่ยนแปลง
void main() {
final city = "Lyon";
var temperature = 21;
print("In $city, it is $temperature degrees.");
}ฟังก์ชัน (function) คือบล็อกโค้ดขนาดเล็กที่นำกลับมาใช้ซ้ำได้ ซึ่งมีชื่อ อาจรับ พารามิเตอร์ (parameter) (ค่าที่ป้อนเข้าไป อยู่ในวงเล็บ) และสามารถ คืนค่า (return) ผลลัพธ์ด้วยคำสงวน return คุณประกาศมันโดยเขียนชนิดของผลลัพธ์ก่อน ตามด้วยชื่อ แล้วจึงเป็นพารามิเตอร์ ชนิด void หมายถึง "ไม่คืนค่าอะไร": ซึ่งเป็นกรณีของ main จุดเริ่มต้นการทำงานของโปรแกรม
int add(int a, int b) {
return a + b;
}
String greet(String name) {
return "Hello, $name!";
}
void main() {
print(add(2, 3));
print(greet("Nadia"));
}แนวคิดสำคัญสุดท้าย: null safety null คือค่าพิเศษที่หมายถึง "ไม่มีอะไร ไม่มีค่า" การลืม null เคยเป็นหนึ่งในสาเหตุหลักที่ทำให้แอปพังมาโดยตลอด Dart ปกป้องคุณ: โดยค่าเริ่มต้น ตัวแปร ไม่สามารถ เก็บ null ได้ ในการอนุญาตอย่างชัดเจน ให้เติมเครื่องหมายคำถามที่ชนิด: String? อ่านได้ว่า "สายอักขระ หรือไม่มีอะไรเลย" จากนั้นตัวดำเนินการ ?? จะให้ค่าสำรอง ซึ่งจะถูกใช้ก็ต่อเมื่อตัวแปรเป็น null เท่านั้น
void main() {
String? nickname;
print(nickname ?? "No nickname yet");
nickname = "Momo";
print(nickname);
}String? nickname หมายความว่าอย่างไร?int add(int a, int b) { return a + b; } คำสั่ง print(add(2, 3)) จะแสดงอะไร?