Menu
CoddyTech

Toán tử xử lý giá trị null

Thuộc phần Kiến thức cơ bản trong hành trình Dart của Coddy. Bài học 28 trên 94.

Toán tử nhận biết null (??) trả về biểu thức bên trái nếu biểu thức đó không phải null, nếu không thì trả về biểu thức bên phải.

void main() {
  String? name = 'Dart';
  String displayName = name ?? 'Guest';
  
  print('Hello, $displayName!');
}
void main() {
  String? name = null;
  String displayName = name ?? 'Guest';
  
  print('Hello, $displayName!');
}
void main() {
  int? score;  // Chưa có giá trị ban đầu, mặc định là null
  int displayScore = score ?? 0;
  
  print('Your score: $displayScore');
  
  // Sau đó trong chương trình, score nhận một giá trị
  score = 100;
  displayScore = score ?? 0;
  
  print('Your updated score: $displayScore');
}
challenge icon

Thử thách

Dễ

Tạo một chương trình minh họa toán tử xử lý giá trị null (??) trong Dart:

  1. Khai báo một biến String có thể nhận giá trị null tên là username và gán cho nó giá trị null
  2. Khai báo một biến int có thể nhận giá trị null tên là userAge và gán cho nó giá trị null
  3. Dùng toán tử xử lý giá trị null để gán giá trị mặc định "Guest" cho biến mới displayName nếu username là null
  4. Dùng toán tử xử lý giá trị null để gán giá trị mặc định 18 cho biến mới displayAge nếu userAge là null
  5. In các giá trị theo đúng định dạng sau:
Username: Guest (default value used)
Age: 18 (default value used)

Sau đó:

  1. Cập nhật username thành "DartUser"
  2. Cập nhật userAge thành 25
  3. Lặp lại bước 3 và 4 với các giá trị đã cập nhật
  4. In các giá trị theo đúng định dạng sau:
Username: DartUser (original value used)
Age: 25 (original value used)

Tự làm thử

void main() {
  // Khai báo các biến có thể nhận giá trị null
  String? username = _;
  int? userAge = _;
  
  // Dùng toán tử xử lý null cho các giá trị mặc định
  String displayName = username ?? _;
  int displayAge = userAge ?? _;
  
  // In ra các giá trị ban đầu
  print("Username: $displayName (default value used)");
  print("Age: $displayAge (default value used)");
  
  // Cập nhật các biến
  username = _;
  userAge = _;
  
  // Dùng lại toán tử xử lý null
  displayName = username _ "Guest";
  displayAge = userAge _ 18;
  
  // In ra các giá trị sau khi cập nhật
  print("Username: $displayName (original value used)");
  print("Age: $displayAge (original value used)");
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức cơ bản

Tự luyện tập: Trình biên dịch Dart online