Обновление Dart 3.7.0: ключевые изменения и комментарии от компании Friflex

Dart снова обновился! Локальные переменные и параметры с именем теперь можно не использовать, а анализатор подсказывает переменные экземпляра внутри инициализаторов late. Про эти и другие обновления, которые отследил бот @FlutterObserver_bot (кстати, сообщил быстрее команды Dart и Flutter), — дальше.

🌟 Языковые обновленияПодстановочные переменные (Wildcard Variables)

Локальные переменные и параметры с именем _ теперь:

Не требуют обязательного использования.

Могут объявляться многократно без конфликтов.

Недоступны для чтения (значение игнорируется).

Пример использования:

Foo(_, this._, super._, void _()) {} main() { var _ = 1; int _ = 2; list.where((_) => true); }

Юрий Петров, Tech Lead Friflex: Это упрощает код в случаях, когда значение переменной не важно (например, в колбэках). Но будьте осторожны — теперь _ не хранит данные!

🛠 Инструменты и анализаторНовые исправления и правила

Автодополнение для late-полей: Теперь анализатор подсказывает переменные экземпляра внутри инициализаторов late.

Конвертация forEach в for: Учитывает правила prefer_final_in_for_each.

Объединение else if: Анализатор предлагает объединить вложенные if внутри else в else if.

30+ новых быстрых исправлений: Например, автоматическое добавление await или исправление импортов.

Юрий Петров, Tech Lead Friflex: Анализатор стал умнее — теперь он не только находит ошибки, но и помогает писать более красивый и понятный код.

🎨  Dart formatНовый стиль для декларативного кода:

Автоматические запятые: сам добавляет/удаляет конечные запятые в списках.

Ширина страницы: Настраивается через analysis_options.yaml:

formatter: page_width: 120

Исключение участков кода:

// dart format off неформатируемый_код(); // dart format on

Петров Юрий, Tech Lead Friflex: Новый стиль делает код Flutter-виджетов гибче. Используйте // dart format off для сложных структур данных и только там, где это действительно необходимо!

⚠️ Критические измененияУстаревшие библиотеки

Следующие библиотеки помечены как deprecated и будут удалены в следующем релизе:

dart:html, dart:js, dart:svg, dart:web_gl

Рекомендация: Переход на dart:js_interop и пакет package:web.

Петров Юрий, Tech Lead Friflex: Пора начать миграцию! Лучше не затягивать с этим.

🚀 Производительность и компиляцияКомпиляторы dart2js и dartdevc.

Используют AOT-снимки вместо JIT, что ускоряет запуск.

Для DDC:

/bin/dartaotruntime /bin/snapshots/dartdevc_aot.dart.snapshot

Петров Юрий, Tech Lead Friflex: AOT-компиляция уменьшает время сборки — особенно заметно в CI/CD-процессах.

🐞 Исправления в версиях 3.6.x

HttpServer: Исправлено кодирование заголовков с Content-Type (#59719).

dart format: Корректная обработка цифровых разделителей (#59815).

dart fix: Исправлено применение исправлений в многофайловых проектах (#59572).

 Советы для миграции

Обновите SDK в pubspec.yaml:

sdk: ‘^3.7.0’

Запустите dart pub get перед форматированием кода.

Используйте dart fix вместо dart format —fix.

Заключение: Dart 3.7 делает язык выразительнее, а инструменты — умнее. Не упустите новые возможности для оптимизации вашего кода! 🚀

Ознакомиться со всеми изменениями можно посмотрев:

CHANGELOG

Breaking changes

Не пропустите обновления в мире Flutter на канале Мобильный разработчик

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии