📢 Новая фича в Dart: Private Named Parameters
(в черновике спецификации, но звучит многообещающе!)
🚀 Dart планирует разрешить использование приватных полей (_field) напрямую в именованных параметрах конструкторов.
Раньше это было запрещено — и приходилось использовать лишний код в списке инициализации. Теперь всё станет проще, лаконичнее и более выразительно!
🔒 Проблема: приватные параметры в конструкторах
Было нельзя вот так:
Почему? Потому что this._windows — приватное поле, а Dart запрещал использовать _ в публичных именованных параметрах.
Приходилось писать через инициализацию:
✅ Что поменяется?
Теперь можно будет использовать приватные поля напрямую:
🔥 А с primary constructors всё ещё лаконичнее:
🛠 Как это работает?
Компилятор убирает _ из параметров конструктора, чтобы они не «светились» вовне, но сохраняет привязку к приватным полям. Это:
– соблюдает инкапсуляцию
– предотвращает конфликты имён
– улучшает читаемость и сокращает код
📚 Подробнее в черновике спецификации и вот тут
🧵 #dart #flutter #новости #privateparameters #язык #фича #инкапсуляция #flutterpulse
(в черновике спецификации, но звучит многообещающе!)
🚀 Dart планирует разрешить использование приватных полей (_field) напрямую в именованных параметрах конструкторов.
Раньше это было запрещено — и приходилось использовать лишний код в списке инициализации. Теперь всё станет проще, лаконичнее и более выразительно!
🔒 Проблема: приватные параметры в конструкторах
Было нельзя вот так:
class House {
int? _windows;
House({this._windows}); // Ошибка!
}
Почему? Потому что this._windows — приватное поле, а Dart запрещал использовать _ в публичных именованных параметрах.
Приходилось писать через инициализацию:
class House {
int? _windows;
House({int? windows}) : _windows = windows;
}
✅ Что поменяется?
Теперь можно будет использовать приватные поля напрямую:
class House {
int? _windows;
int? _bedrooms;
int? _swimmingPools;
House({this._windows, this._bedrooms, this._swimmingPools});
}
🔥 А с primary constructors всё ещё лаконичнее:
class House({
int? _windows,
int? _bedrooms,
int? _swimmingPools,
});
🛠 Как это работает?
Компилятор убирает _ из параметров конструктора, чтобы они не «светились» вовне, но сохраняет привязку к приватным полям. Это:
– соблюдает инкапсуляцию
– предотвращает конфликты имён
– улучшает читаемость и сокращает код
📚 Подробнее в черновике спецификации и вот тут
📌 Пока в разработке — следим за обновлениями!
🧵 #dart #flutter #новости #privateparameters #язык #фича #инкапсуляция #flutterpulse
🔥1