|
|
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
Модератор: "Стартовое" сообщение (сместилось после переноса): DmSer Предлагаю вынести обсуждение улучшений оператора with в данную ветку. Ранее была создана задача, где предлагается ввести алиасы в оператор with. Вот ссылка на неё: https://quality.embarcadero.com/browse/RSP-27468 Если Вам нравится идея и Вы ещё не принимали участие в голосовании, то обязательно проголосуйте, Ваш голос имеет значение! Благодаря алиасам можно исправить фундаментальные проблемы оператора with, из-за которых Марко Канту уже который год грозится выпилить его из Delphi. Одно из предложений было оформлять алиасы с помощью ключевого слова "as". В этом случае код может выглядеть таким образом: Код: pascal 1. 2. 3. 4. 5. 6. _Vasilisk_ Код: pascal 1. 2. 3. 4. 5. 6. 7. try..finally ради одной безобидной строчки выглядит как-то нерационально. Какой в ней смысл? Кто такое правило ввёл? Одну строчку без try..finally ещё нормально, а вот 2 строчки - уже лажа получается. Нужно предложить эмбаркадере ещё один вариант использования оператора with: Код: pascal 1. 2. 3. 4. это тупо синтаксический сахар над try..finally. либо может более универсальное: Код: pascal 1. 2. 3. 4. в таком случае пусть компилятор будет вспоминать, у кого Enter/Leave, Lock/Unlock, wait/release и т.д. получится на 2 строчки короче, нежели с try..finally: Код: pascal 1. 2. 3. 4. 5. 6. Как считаете, смысл есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 10:42 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
DmSer, экономия на спичках, имхо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 15:46 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
With - зло! Лучше бы конструкцию Код: pascal 1. 2. 3. 4. замутили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 15:54 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
DmSer Как считаете, смысл есть? 1. Только если будет возможность подключать свои syncobjects. Например, через интерфейс. 2. Лучше не with, а какое-нибудь другое ключевое слово. Тот же using. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 15:55 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
rgreat With - зло! with - отличная штука, которой не хватает единственной маленькой доработки для того, чтобы быть просто великолепной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 15:56 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
softwarer, Какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 15:56 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 16:18 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
С вложенными точками, надо полагать? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 16:35 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
softwarer Код: pascal 1. 2. Но не решит проблему для нескольких переменных: Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 16:50 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
За улучшение with можно голосовать: https://quality.embarcadero.com/browse/RSP-27468 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 17:08 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
DmSer> Но не решит проблему для нескольких переменных: Да, если вложенные ещё можно как-то (уродливо, ИМХО) разрешить, то с несколькими вроде бы совсем никак. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 17:15 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
DmSer Но не решит проблему для нескольких переменных: Для нескольких переменных решат алиасы: Код: pascal 1. 2. Но я не уверен, что это действительно нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 17:25 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
softwarer with - отличная штука +1 Kazantsev Alexey За улучшение with можно голосовать: https://quality.embarcadero.com/browse/RSP-27468 done понимаю, что холивар. Только какой смысл в алиасах? имхо, красота with в краткости и отсутствии необходимости писать еще что-то слева от свойства/метода. Вряд ли в него будешь заключать портянки кода на 2-3 экрана зы. на скруле всегда так, как только тема исчерпывается, начинается оффтоп. Ура, Рустему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 18:06 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
softwarer DmSer Но не решит проблему для нескольких переменных: Для нескольких переменных решат алиасы: Код: pascal 1. 2. Но я не уверен, что это действительно нужно. Первые пару дней 10 человек проголосовали, затем задача ушла из топа. Думаю, голосов было бы намного больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 18:07 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
Док> Только какой смысл в алиасах? В зависимости от ситуации, смыслов у алиаса может быть более одного. В SQL кроме красоты/краткости это ещё и правильное разрешение имён. > Вряд ли в него будешь заключать портянки кода на 2-3 экрана Ты недооцениваешь умельцев. > начинается оффтоп. Ура, Рустему Опять я виноват? Почищу позже (если не забуду). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 18:09 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
softwarer Для нескольких переменных решат алиасы: Код: pascal 1. 2. Но я не уверен, что это действительно нужно. Это почти то же самое что и Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 18:15 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
Док Только какой смысл в алиасах? Одноимённые члены резолвить без псевдонимов не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 18:34 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
rgreat Это почти то же самое что и Код: pascal 1. 2. 3. А так работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 18:42 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
softwarer, Да. С 10.3 начиная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 18:49 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
В общем, как появился инлайн var так надобность в with практически отпала. По крайней мере мне такие случаи почти не попадаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 19:00 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
Предлагаю вынести обсуждение улучшений оператора with в данную ветку. Ранее была создана задача, где предлагается ввести алиасы в оператор with. Вот ссылка на неё: https://quality.embarcadero.com/browse/RSP-27468 Если Вам нравится идея и Вы ещё не принимали участие в голосовании, то обязательно проголосуйте, Ваш голос имеет значение! Благодаря алиасам можно исправить фундаментальные проблемы оператора with, из-за которых Марко Канту уже который год грозится выпилить его из Delphi. Одно из предложений было оформлять алиасы с помощью ключевого слова "as". В этом случае код может выглядеть таким образом: Код: pascal 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 19:02 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
Все проблемы с With решаются игнорированием правил старика Вирта и выдачей ошибки (или хотя бы предупреждения) если идентификатор в коде ресольвится более чем в один объект вместо примитивного "молча возьмём тот, что ближе" ака "кто последний, тот и папка". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 19:05 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
Ещё я предлагаю рассмотреть идею нового варианта использования оператора with для работы с примитивами синхронизации: Код: pascal 1. 2. 3. 4. CS - это критическая секция, хотя можно пофантазировать и насчёт других объектов синхронизации (мьютексы, эвенты, спинлоки, TThreadList, объекты, поддерживающие общий интерфейс для синхронизации) получится на 2 строчки короче, нежели с try..finally: Код: pascal 1. 2. 3. 4. 5. 6. Вот коробит меня использовать try..finally для защиты всего лишь одной строки кода. А в случае with было бы нагляднее (по моему мнению). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 19:14 |
|
||
|
Улучшение оператора with: голосование и обсуждения
|
|||
|---|---|---|---|
|
#18+
DmSer, А обработка ошибок у тебя в таком варианте где? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2020, 19:17 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39989510&tid=2038070]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
164ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 510ms |

| 0 / 0 |
