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

start [/forum/topic.php?fid=58&mobile=1&tid=2038070]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 364ms |

| 0 / 0 |
