Dart 3.5 принес значительные улучшения в язык, которые делают разработку на Flutter более продуктивной и код более безопасным. В этой статье разберём ключевые нововведения.
Что нового в Dart 3.5?
- Pattern matching — мощная система сопоставления с образцом
- Records — легковесные неизменяемые данные
- Class modifiers — новый контроль над классами
- Улучшенные generics
- Enhanced switch expressions
- И многое другое
Pattern Matching
Pattern matching — это способ деструктуризации и проверки значений:
// Простой pattern
switch (value) {
case int x when x > 0:
print('Positive: $x');
case int x:
print('Non-positive: $x');
case String s:
print('String: $s');
default:
print('Other');
}
// Pattern в переменных
final (name, age) = getUser();
print('$name is $age years old');
// Pattern в циклах
final map = {'a': 1, 'b': 2};
for (final (key, value) in map.entries) {
print('$key: $value');
}
Records
Records — это неизменяемые данные-классы:
// Объявление record
record User(String name, int age) {
String get description => '$name is $age years old';
}
// Использование
final user = User('Alice', 30);
print(user.name); // Alice
print(user.age); // 30
print(user.description); // Alice is 30 years old
// Деструктуризация
final (name, age) = user;
Заключение
Dart 3.5 делает язык более современным и выразительным. Начните использовать новые возможности в своих проектах уже сегодня!