![]() |
Модераторы: LSD Страницы: (144) « Первая ... 125 126 [127] 128 129 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 14 Всего: 459 |
По меньшей мере меняет приоритет контекстов. Насколько я помню, в делфи локальный контекст имеет наивысший приоритет, во всех случаях кроме случаев внутри оператора with , внутри него по умолчанию все свойства и функции считаются принадлежащими объекту, если таких нет, то проверяется локальный контекст, затем область видимости модуля, затем других модулей. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Сэкономим на имени локальной переменной, великое достижение ![]() А потом успешно сожрем сэкономленное бегин-эндами ![]() Ты пока что аргументов тоже не привел, даже не расписал чем так хорош with. Зато моя персона тебе покоя не дает, каждый пост надо прокоментить. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Akella |
|
||||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
Зато begin и end можно убрать, если только одно действие выполняется
а чаще всего именно так и происходит Добавлено через 2 минуты и 57 секунд
а так?
никаких объявлений Добавлено через 3 минуты и 29 секунд толсто, толсто ![]() Добавлено через 4 минуты и 26 секунд так для андроида ж то же самое |
||||||
|
|||||||
k0rvin |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
А по хорошему достаточно массива [Tag] -> Color и не надо никаких свитчей. =) Это не троллинг. http://stackoverflow.com/questions/514482/...-a-bad-practice http://wiert.me/2013/03/27/delphi-you-shou...s-future-proof/
ну так и есть костыль для языков, где нет возможности легко объявить переменную по месту.
-------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||||
|
|||||||||
diadiavova |
|
||||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 4 Всего: 142 |
Эмммммм... я чойт вообще не понял, какая связь между цитатой из моего поста и твоим комментарием под этой цитатой ![]() О блоке With я уже упоминал, причем не далее как в этой самой теме, и упоминал в том плане, что не считаю его серьезным преимуществом языка. Раньше я его вообще не использовал, потом попробовал - понравилось, но до сих пор считаю его скорее декоративным элементом языка, в некоторых случаях незначительно улучшающим код, и не более того. Букаф при его использовании в самом деле приходится писать меньше, поскольку объявление блока короче объявления переменной с инициализацией (а когда в языке не было выведения типов, то было существенно короче), никаких бигинов в языке отродясь не было, а все энды вводятся средствами кодкомплишн студии. Добавлено @ 20:07
В бейсике такая возможность есть, а стало быть есть выбор ![]() -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
||||||
|
|||||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 14 Всего: 459 |
Так и в делфи. Начинаешь писать Be... он сразу предлагает завершить Begin / end жмешь Enter и есть готовый бегин/энд. Все это нубоглупости . -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 4 Всего: 142 |
А чо ты мне об этом говоришь? Это не я взялся считать сколько лишних букв придется написать из-за бегинэндов. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
Akella |
|
||||||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
Так а нафига вообще она нужна? Добавлено через 2 минуты и 40 секунд
![]()
Добавлено через 3 минуты и 44 секунды
Вот именно. ![]() |
||||||||
|
|||||||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Для однозначной идентификации получателя сообщения.
Вот когда вызовет, тогда и поймешь зачем она нужна. Та же фигня и с юнитами. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 4 Всего: 142 |
Может объяснишь "на пальцах" каким образом означенная проблема может возникнуть в бейсике? ![]() -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
При чем тут Бейсик? Мы про Делфи. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
diadiavova |
|
||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 4 Всего: 142 |
А мое замечание тоже дельфей касалось? ![]() -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
||||
|
|||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Прости, я лишь воспользовался твоим замечанием, как отсылкой к проблеме, чтобы "далеко не ходить". =) -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Я просто прокомментировал, малополезность подобной конструкции. Не обязательно все принимать на свой счет. А закрытие файла там выполняется? Всегда? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
drkot |
|
||||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: нет Всего: 8 |
LSD, просто я тебя люблю, думаю не маленький должен был догадаться.
хорошесть, (ну кроме бурно обсуждаемых уменьшения численности буков, что неизменно улучшает читаемости кода) заключается в ускорении доступа к контексту объектов (или структур) обернутых в with. Если на пальцах, то при обращении элементу объекта идет сначала определение смещения на объект, а потом внутреннее смещение на элемент, при обертке with смещение на объект запоминается, что уменьшает количество "лишних" вызовов. Конечно, такое ускорение ощутимо при обработке множества однотипных объектов (списки, коллекции, те же базы). Конструкция With Self конечно же не меняет контекст, и ее применение имеет скорее учебный характер, так как контекст Self уже доступен как локальный и дублировать такое описание нет необходимости. А вот конструкция with TMyObj(Sender) do гораздо интереснее, так как Sender как правило далекий родитель, и для работы понадобится либо локальная переменная, либо приведение типов, а оператор with позволяет переопределить локальный контекст. Применение with в качестве замены локальной переменной не есть хорошо (лично на мой взгляд), так как приводит к мнимому упрощению (нет необходимости объявлять переменную), но не при этом не дает возможности получить контекст переменной вне блока. Такой подход оправдан разве что при создании списков и коллекций, когда созданнаы переменная добавляется в в список, и может быть получена вне блока. Создание же объектов без привязки (owner = nil) используя оператор with не лучшее решение (опять же на мой взгляд).
в частности такой подход лично я не одобряю, так как free выполнится не гарантированно. Все сказанное касается исключительно компиляторов Delphi. Добавлено через 1 минуту и 8 секунд
непонимание конструкции еще не говорит о её малополезности. -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
||||
|
|||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |