Ответ
Dart — это современный язык с сильной типизацией, разработанный для клиентских приложений, особенно для Flutter. Его ключевые особенности:
1. Null Safety (по умолчанию): Типы не допускают null по умолчанию. Для nullable-типов используется суффикс ?.
String name = 'Alice'; // Не может быть null
String? nickname = null; // Может быть null
2. Операторы для работы с null:
??(оператор если-null):String displayName = nickname ?? name;?.(условный доступ):int? length = nickname?.length;!(оператор утверждения non-null):String sureName = nickname!;// Может выбросить исключение
3. Функции как объекты первого класса и лямбда-выражения:
void printMessage(String msg) => print(msg);
Function logger = printMessage;
// Лямбда
final multiply = (int a, int b) => a * b;
4. Mixins для повторного использования кода: Позволяют добавлять функциональность в классы без использования наследования.
mixin ValidationMixin {
bool isValidEmail(String email) => email.contains('@');
}
class UserForm with ValidationMixin {}
5. Асинхронность через Future и async/await:
Future<String> fetchUserData() async {
final response = await http.get(Uri.parse('https://api.example.com/user'));
return response.body;
}
6. Генераторы для ленивых последовательностей:
Iterable<int> getRange(int start, int end) sync* {
for (int i = start; i <= end; i++) {
yield i;
}
}
7. Изоляты (Isolates) для параллелизма: Вместо потоков Dart использует изоляты с разделяемой памятью, что исключает состояние гонки.