Menu
CoddyTech

Truy cập 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 29 trên 94.

Toán tử truy cập có xét null (?.) truy cập an toàn vào thuộc tính của các đối tượng có thể là null, giúp tránh lỗi khi chạy chương trình.

void main() {
  String? name = 'Dart';
  int? length = name?.length;
  
  print('Name: $name');
  print('Length: $length');
}

Khi gặp giá trị null, chương trình trả về null thay vì bị lỗi:

void main() {
  String? name = null;
  int? length = name?.length;
  
  print('Name: $name');
  print('Length: $length');
}
challenge icon

Thử thách

Dễ

Tạo chương trình Dart minh họa toán tử truy cập có xét đến null (?.) với một nhân vật trong trò chơi:

  1. Tạo một biến String có thể nhận giá trị null tên là playerName và gán giá trị null cho biến
  2. Tạo một biến int có thể nhận giá trị null tên là playerScore và gán giá trị 100 cho biến
  3. Dùng toán tử truy cập có xét đến null (?.) để lấy độ dài của playerName và lưu vào biến tên là nameLength
  4. In thông báo sau: Player name length: X (trong đó X là giá trị của nameLength)
  5. Cập nhật playerName thành "Champion"
  6. Dùng lại toán tử truy cập có xét đến null để lấy độ dài mới và lưu vào nameLength
  7. In thông báo đã cập nhật: Player name length: X (trong đó X là giá trị mới)
  8. In điểm của người chơi theo định dạng sau: Player score: 100

Tự làm thử

void main() {
  // Khai báo các biến có thể nhận giá trị null tại đây
  String? playerName = _;
  int? playerScore = _;
  
  // Lấy độ dài của playerName bằng toán tử ?.
  int? nameLength = playerName_.length;
  
  // In ra độ dài tên ban đầu
  print("Player name length: ${nameLength}");
  
  // Cập nhật playerName
  playerName = _;
  
  // Lấy độ dài sau khi cập nhật bằng toán tử ?.
  nameLength = playerName_.length;
  
  // In ra độ dài tên sau khi cập nhật
  print("Player name length: ${nameLength}");
  
  // In ra điểm của người chơi
  print("Player score: ${playerScore}");
}
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