Kodokon kodokon.com

พื้นฐานของ Dart: ตัวแปร ฟังก์ชัน และ null safety

เรียนรู้การเก็บค่าในตัวแปรที่มีชนิดกำกับ เขียนฟังก์ชัน และทำความเข้าใจการป้องกันจาก null

10 นาที · 3 คำถาม

เปิดบทเรียนนี้ใน Kodokon

ก่อนจะสร้างหน้าจอ มาเรียนรู้พื้นฐานของ Dart ภาษาของ Flutter กันก่อน ตัวแปร (variable) คือกล่องที่มีป้ายชื่อในหน่วยความจำของคอมพิวเตอร์ ซึ่งคุณเก็บค่าไว้เพื่อนำกลับมาใช้ใหม่ในภายหลัง ใน Dart ตัวแปรทุกตัวมี ชนิด (type): ลักษณะของสิ่งที่มันเก็บได้ ชนิดที่พบบ่อยที่สุดสี่ชนิดได้แก่ int (จำนวนเต็ม เช่น 28), double (จำนวนทศนิยม เช่น 1.65), String (สายอักขระ หรือก็คือข้อความที่อยู่ในเครื่องหมายคำพูด) และ bool (ค่าบูลีน: true หรือ false) คำสงวน var ให้ Dart หาชนิดเองจากค่าที่คุณกำหนดให้

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 ซึ่งประกาศตัวแปรที่ ไม่มีวันเปลี่ยนได้อีก หลังจากรับค่าแรกไปแล้ว: ใช้มันทันทีที่ค่าใดไม่ควรเปลี่ยนแปลง

DART
void main() {
  final city = "Lyon";
  var temperature = 21;
  print("In $city, it is $temperature degrees.");
}
การแทรกค่าใส่ตัวแปรลงในข้อความ

ฟังก์ชัน (function) คือบล็อกโค้ดขนาดเล็กที่นำกลับมาใช้ซ้ำได้ ซึ่งมีชื่อ อาจรับ พารามิเตอร์ (parameter) (ค่าที่ป้อนเข้าไป อยู่ในวงเล็บ) และสามารถ คืนค่า (return) ผลลัพธ์ด้วยคำสงวน return คุณประกาศมันโดยเขียนชนิดของผลลัพธ์ก่อน ตามด้วยชื่อ แล้วจึงเป็นพารามิเตอร์ ชนิด void หมายถึง "ไม่คืนค่าอะไร": ซึ่งเป็นกรณีของ main จุดเริ่มต้นการทำงานของโปรแกรม

DART
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 เท่านั้น

DART
void main() {
  String? nickname;
  print(nickname ?? "No nickname yet");
  nickname = "Momo";
  print(nickname);
}
เครื่องหมาย ? อนุญาต null ส่วน ?? ให้ค่าสำรอง

ทดสอบความรู้

ตรวจสอบว่าคุณจำประเด็นสำคัญของบทเรียนนี้ได้ครบถ้วน

  1. ชนิดข้อมูลใดของ Dart เหมาะสำหรับเก็บค่า true หรือ false?
    • int
    • String
    • bool
    • double
  2. การประกาศ String? nickname หมายความว่าอย่างไร?
    • ตัวแปร nickname สามารถเก็บข้อความหรือ null ได้
    • ตัวแปร nickname จำเป็นต้องมีค่าและต้องถูกกรอกเสมอ
    • คอมไพเลอร์ต้องเดาชนิดของ nickname
  3. จาก int add(int a, int b) { return a + b; } คำสั่ง print(add(2, 3)) จะแสดงอะไร?
    • 2 + 3
    • 5
    • ข้อผิดพลาดในการคอมไพล์