OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 19 Июнь, 2019 01:00

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Разное по оформлению кода
СообщениеДобавлено: Пятница, 25 Июль, 2008 21:14 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9122
Откуда: Россия, Орёл
Думается, что в случае, когда мы делаем скрытую реализацию некоторого типа, имеет смысл ставить метку экспорта у тех процедур, которые реализуют интерфейсные. Смотришь на модуль - и сразу видно, что от интерфейса, а что дополнительно для реализации... Благо язык позволяет ставить ничего не значащую * у процедуры неэкспортированного типа... Как вариант: не звёздочка, а жирность без звёздочки.

Ещё: у самих ОМИНК не принято вводить неэкспортированные связанные процедуры, такие процедуры делаются обычными. Никакой пользы кроме той, что названа выше (видимость того, что к чему) тут не видно. Если ставить звёздочки, то можно вводить и связанные скрытые процедуры - к ним ведь нагляднее обращение (obj.Init а не Init(obj), хотя вот сам я из-за Оминков привык уже ко второму...).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разное по оформлению кода
СообщениеДобавлено: Суббота, 26 Июль, 2008 09:57 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1537
Откуда: Беларусь, Минск
Илья Ермаков писал(а):
Думается, что в случае, когда мы делаем скрытую реализацию некоторого типа, имеет смысл ставить метку экспорта у тех процедур, которые реализуют интерфейсные. Смотришь на модуль - и сразу видно, что от интерфейса, а что дополнительно для реализации... Благо язык позволяет ставить ничего не значащую * у процедуры неэкспортированного типа... Как вариант: не звёздочка, а жирность без звёздочки.
Не объясните по-подробнее? А то я что-то запутался. "Интерфейсные" - значит "имеющие реализацию", а "дополнительно для реализации" - "абстрактные"? И где именно помечать: процедурную переменную в самой записи или конкретную процедуру?

ИМХО, звёздочка, использованная не по назначению - трюк. И его смысл следует оговаривать зарание, иначе станет только хуже: новичёк, увидев такое, решит, что неправильно понял документацию. Разобраться-то он, конечно, разберётся, но потеряет много времени.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разное по оформлению кода
СообщениеДобавлено: Суббота, 26 Июль, 2008 10:52 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9122
Откуда: Россия, Орёл
Нет, дополнительные - это те, которые никогда не вызываются снаружи. Т.е. служебные, внутренние модуля реализации.
А "реализующие интерфейсные" - это те, которые в базовом абстрактном типе экспортированы, а в нашем скрытом - реализованы. Они ведь будут вызываться непосредственно снаружи модуля (через виртуальную таблицу), т.е. по сути, экспортированы (ещё в базовом типе); при их написании ориентируемся на контракт и т.п.

У Оминк где-то тоже видел такую фишку, но трудно понять - то ли это просто тип сначала был экспортирован, а потом скрыт, а убирать звёздочку у процедур не стали, то ли они тоже экспериментировали с таким стилем.

А разрешение метить звёздочкой элементы неэкспортированного владельца - это по стандарту языка. В КП/ББ это, к тому же, влияет на доступность через Meta.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разное по оформлению кода
СообщениеДобавлено: Среда, 28 Сентябрь, 2011 23:47 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4489
Откуда: Россия, Орёл
Если RETURN ставить только в конце процедуры-функции (как в Обероне-07), то его жирным можно не выделять.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разное по оформлению кода
СообщениеДобавлено: Четверг, 06 Октябрь, 2011 09:00 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
А это всё со звёздочками как-то связано с тем, что на схеме из этого поста названо "разновидимостью"?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


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

Сейчас этот форум просматривают: Bing [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB