-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Добавить with <variable> do оператор из старого доброго Паскаля ) #570
Comments
Существующий синтакс чем хуже ?
|
Функции-члены нельзя вызывать, а иногда хочется. |
Это инициализатор. Во первых инициализирует ВСЕ полей (явно+неявно). Во вторых нужен быть внимателен, нельзя поменять порядок иницилизация переменных как они были объявлены. Во третих те который опустили в иницилизаций , сами иницилизирует дефаултами значениями. Во четвёртых , нелзя мержить несколько структур в одном блоке как Коротко, это совсем другое. |
Я лишь прошелся по примеру. Что бы изменить язык нужно подобрать подходящий пример который покажет необходимость в новой языковой конструкции. Как эта фича должна интегрироваться с другими возможностями языка которых не было в паскале. Например ADL и Unqualified name lookup: |
Все это пока открытый вопрос, который надо изучать. Из себя могу предлагать, что with .. do { } тело with do оператор пусть работает как тело метода указанного объекта, все имена и функция, методы (шаблонный АДЛ МАДЛ) сначала ищут внутри класса, только если не найдётся ищут вне класса. |
Вспомнил 20 лет давности : with .. do оператор было адский удобно, для инициализация полей у структур (Record).
Ссылка https://freepascal.org/docs-html/ref/refsu62.html
Почему это идея не дойдет до стандарта? )
Маленький пример,
Не путайте with оператор у Пайтон, там другая.
The text was updated successfully, but these errors were encountered: