Toán tử ba ngôi (Ternary Operator) trong Dart
1. Giới thiệu
Toán tử ba ngôi (? :) là cách viết gọn của câu lệnh if-else trên một dòng.
2. Cú pháp
condition ? expressionIfTrue : expressionIfFalse3. Ví dụ cơ bản
void main() {
int age = 20;
String status = age >= 18 ? 'Người lớn' : 'Trẻ em';
print(status); // Người lớn
}4. So sánh với if-else
// Với if-else
String result;
if (score >= 50) {
result = 'Đậu';
} else {
result = 'Rớt';
}
// Với ternary operator
String result = score >= 50 ? 'Đậu' : 'Rớt';5. Ternary lồng nhau
void main() {
int score = 75;
String grade = score >= 90 ? 'A'
: score >= 80 ? 'B'
: score >= 70 ? 'C'
: score >= 60 ? 'D'
: 'F';
print('Điểm: $grade'); // C
}6. Sử dụng trong Widget Flutter
Text(
isLoggedIn ? 'Xin chào, $username' : 'Vui lòng đăng nhập',
style: TextStyle(
color: isError ? Colors.red : Colors.black,
),
)7. Kết hợp với null-aware
String? name;
String displayName = name != null ? name : 'Guest';
// Hoặc dùng ??
String displayName = name ?? 'Guest';8. Best Practices
// ✅ Dùng cho biểu thức đơn giản
var status = isActive ? 'On' : 'Off';
// ❌ Tránh ternary phức tạp
var result = a > b ? (c > d ? x : y) : (e > f ? m : n);
// ✅ Dùng if-else cho logic phức tạp📝 Tóm tắt
- Cú pháp:
condition ? trueValue : falseValue - Thay thế if-else đơn giản
- Tránh lồng quá nhiều cấp
- Phổ biến trong Flutter UI
Last updated on