Null Safety là tính năng giúp ngăn chặn lỗi do các biến có giá trị rỗng (null) gây ra. Được áp dụng rộng rãi trong ngôn ngữ Dart (và framework Flutter), tính năng này giúp các nhà phát triển phát hiện lỗi ngay tại thời điểm biên dịch thay vì khi ứng dụng chạy, giúp ứng dụng ổn định và ít bị crash hơn.

Dart áp dụng hai nguyên tắc chính để đảm bảo an toàn:
- Mặc định không cho phép null (Non-nullable by default): Theo mặc định, tất cả các biến trong chương trình đều được coi là kiểu không thể nhận giá trị null. Điều này có nghĩa là một biến khai báo kiểu String sẽ luôn chứa một chuỗi ký tự hợp lệ.
- Hoàn toàn an toàn (Fully sound): Tính năng này đảm bảo rằng nếu hệ thống xác định một thứ gì đó không phải là null, thì nó sẽ không bao giờ là null.
Các toán tử và từ khóa phổ biến. Để làm việc với các giá trị có thể là null, Dart cung cấp các công cụ cụ thể:
- Dấu chấm hỏi (?): Dùng để khai báo một biến có thể nhận giá trị null.
- Toán tử kiểm tra (!): Dùng để ép buộc Dart coi một biến có thể là null là không có giá trị null.
- Toán tử gán mặc định (??): Dùng để trả về một giá trị mặc định nếu biến đó đang là null.
- Từ khóa (late): Dùng để khai báo một biến chưa được khởi tạo giá trị ngay lúc khai báo nhưng chắc chắn sẽ được gán giá trị trước khi sử dụng.
Nói chung là:
- String là mặc định ko null
ví dụ:
String name = "Tien";
- Có ! cũng chắc chắn ko null
ví dụ:
String? name = "Tien";
print(name!);
- String? có thể null
ví dụ:
String? name;
name = null;
- Có ?? nếu ko null thì in ra biến
ví dụ:
String? name;
print(name ?? "ko có tên");
- Có late mà sau đó ko gán giá trị thì cũng lỗi
ví dụ:
late String name;
name = "Tien";
print(name);








Khoá học lập trình game con rắn cho trẻ em




