uses - почему так?

Проектирование и разработка идеального средства программирования.

Модератор: Модераторы

Re: uses - почему так?

Сообщение stanilar » 27.03.2019 11:42:17

Лекс Айрин будет та-же проблема, что и при стандартных юзес. Никаких новых чудес не появится.
stanilar
постоялец
 
Сообщения: 289
Зарегистрирован: 09.03.2010 19:09:02

Re: uses - почему так?

Сообщение Лекс Айрин » 27.03.2019 12:09:57

stanilar, тогда эта фишка ненужна.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: uses - почему так?

Сообщение stanilar » 27.03.2019 13:26:30

Лекс Айрин Это не фишка. Это логичное продолжение тех принципов, что есть. Так же как type-секции, которые есть что в секции объявления,что в секции реализации и еще в области видимости процедуры.

А вот проблему ТС это решит с головой, простым перемещением uses в тело процедуры.
stanilar
постоялец
 
Сообщения: 289
Зарегистрирован: 09.03.2010 19:09:02

Re: uses - почему так?

Сообщение zub » 27.03.2019 13:34:43

stanilar
все в порядке с усес в паскале, ненадо тут ничего придумывать
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: uses - почему так?

Сообщение Лекс Айрин » 27.03.2019 13:55:59

stanilar, вообще-то, подобное есть дурная привычка С, которую даже они стараются избегать. И так оттуда понадергали все, что можно и даже часть того, что нельзя. Типа, protected секции в классах.
У ТС не проблема, а непонятка.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: uses - почему так?

Сообщение stanilar » 28.03.2019 12:44:03

Лекс Айрин Ну насчет дурной можно привести два предельных примера - первый это когда все uses в паблик-секции и без переопределения непонятно какой тип откуда берется в итоге. Второй это когда все uses указаны для процедур.
stanilar
постоялец
 
Сообщения: 289
Зарегистрирован: 09.03.2010 19:09:02

Re: uses - почему так?

Сообщение Лекс Айрин » 28.03.2019 13:54:10

stanilar, если ты не умеешь работать с ide это только твои проблемы, а не языка. Где что определено находится достаточно легко. За исключением некоторых случаев, когда все динамически переопределяется во время выполнения. Да и то, в половине, если не больше, случаев все находится стандартными методами.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: uses - почему так?

Сообщение stanilar » 28.03.2019 17:01:46

Лекс Айрин Дело не в иде, но в возможности однозначной трактовки текста программы. Главный козырь паскаля, все таки.
stanilar
постоялец
 
Сообщения: 289
Зарегистрирован: 09.03.2010 19:09:02

Re: uses - почему так?

Сообщение Снег Север » 28.03.2019 18:29:33

stanilar, для однозначной трактовки надо воздерживаться от переопределения переменных в модулях.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: uses - почему так?

Сообщение Лекс Айрин » 28.03.2019 21:06:28

stanilar, трактовка и так однозначна. Любой момент, который кажется неясным подхватывается в реалтайме. Неоднозначность имён тоже. По принципу кто последний, тот и рулит. Подключение модулей для каждой отдельной подпрограммы лишь сильно усложнит работу компилятора. Кстати, я бы не удивился, если бы для каждой конструкции пришлось бы использовать имя модуля в которой оно встречается. Кстати, кое-где в самом лазарусе подобное даже есть типа ' point:=window.point;' за точность не ручаюсь, но выглядит забавно. То есть, даже в самой среде не везде удалось обеспечить уникальность имён.
И да, объектный паскаль уже не тот виртовский язык, который легко описывался на одной страничке в тетради. И неоднозначностей в нем много, но только не в подключении модулей. Этот момент улучшить очень тяжело.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: uses - почему так?

Сообщение stanilar » 29.03.2019 00:14:46

Лекс Айрин писал(а):По принципу кто последний, тот и рулит.

Ну и где здесь однозначность? Т.е. раз не сравнил сотню-две подключенных файлов из двух секций, то либо сам виноват либо с иде работать не умеешь?
stanilar
постоялец
 
Сообщения: 289
Зарегистрирован: 09.03.2010 19:09:02

Re: uses - почему так?

Сообщение Лекс Айрин » 29.03.2019 06:05:50

stanilar, в среде есть возможность узнать где находится определение нужного типа или переменной. Так что искать ручками по всем файлам не надо. Да и перекрытие определений более новыми вполне понятно. Фактически, подключение модуля означает, полное копирование его содержимого в целевой файл. За исключением некоторых нюансов. Так что при желании все эти фокусы можно повторить и без других модулей. Если не запутаешься. Хотя тут могут помочь inc файлы.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: uses - почему так?

Сообщение Cheb » 08.11.2019 13:44:17

Никто не заморачивается потому что пространство имён можно указывать вручную.
Пример: я у себя в проекте везде переопределил boolean на longbool, но в редких случаях, когда нужен стандартный, просто пишу system.boolean

В частности, когда переопределяешь класс под тем же именем:
Код: Выделить всё
TStringList = class(classes.TStringList)
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Пред.

Вернуться в Компилятор / язык программирования

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

Рейтинг@Mail.ru