Arrow Functions trong Dart
1. Giới thiệu
Arrow function (fat arrow) là cú pháp ngắn gọn cho hàm chỉ có một biểu thức.
2. Cú pháp
// Hàm thông thường
returnType functionName(params) {
return expression;
}
// Arrow function
returnType functionName(params) => expression;3. Ví dụ cơ bản
// Hàm thông thường
int add(int a, int b) {
return a + b;
}
// Arrow function
int add(int a, int b) => a + b;4. Các ví dụ khác
// Kiểm tra số chẵn
bool isEven(int n) => n % 2 == 0;
// Bình phương
int square(int n) => n * n;
// String template
String greet(String name) => 'Xin chào, $name!';
// Getter
String get fullName => '$firstName $lastName';5. Sử dụng với List
void main() {
var numbers = [1, 2, 3, 4, 5];
// map
var doubled = numbers.map((n) => n * 2).toList();
print(doubled); // [2, 4, 6, 8, 10]
// where (filter)
var evens = numbers.where((n) => n % 2 == 0).toList();
print(evens); // [2, 4]
// any
bool hasLarge = numbers.any((n) => n > 3);
print(hasLarge); // true
}6. Trong Class
class Circle {
final double radius;
Circle(this.radius);
// Getters với arrow
double get area => 3.14159 * radius * radius;
double get circumference => 2 * 3.14159 * radius;
// Method với arrow
bool contains(double r) => r <= radius;
}7. Khi NÊN dùng Arrow Function
// ✅ Biểu thức đơn giản
int double(int n) => n * 2;
// ✅ Getters
String get name => _name;
// ✅ Callbacks ngắn
button.onPressed = () => print('Clicked!');8. Khi KHÔNG NÊN dùng
// ❌ Logic phức tạp - dùng hàm thường
void processData(List data) {
if (data.isEmpty) return;
for (var item in data) {
// nhiều xử lý...
}
}📝 Tóm tắt
- Cú pháp:
type name(params) => expression; - Chỉ dùng cho hàm 1 biểu thức
- Phổ biến với map, where, getter
- Làm code ngắn gọn, dễ đọc
Last updated on