OberonCore https://forum.oberoncore.ru/ |
|
Разное по оформлению кода https://forum.oberoncore.ru/viewtopic.php?f=29&t=1097 |
Страница 1 из 1 |
Автор: | Илья Ермаков [ Пятница, 25 Июль, 2008 21:14 ] |
Заголовок сообщения: | Разное по оформлению кода |
Думается, что в случае, когда мы делаем скрытую реализацию некоторого типа, имеет смысл ставить метку экспорта у тех процедур, которые реализуют интерфейсные. Смотришь на модуль - и сразу видно, что от интерфейса, а что дополнительно для реализации... Благо язык позволяет ставить ничего не значащую * у процедуры неэкспортированного типа... Как вариант: не звёздочка, а жирность без звёздочки. Ещё: у самих ОМИНК не принято вводить неэкспортированные связанные процедуры, такие процедуры делаются обычными. Никакой пользы кроме той, что названа выше (видимость того, что к чему) тут не видно. Если ставить звёздочки, то можно вводить и связанные скрытые процедуры - к ним ведь нагляднее обращение (obj.Init а не Init(obj), хотя вот сам я из-за Оминков привык уже ко второму...). |
Автор: | Valery Solovey [ Суббота, 26 Июль, 2008 09:57 ] |
Заголовок сообщения: | Re: Разное по оформлению кода |
Илья Ермаков писал(а): Думается, что в случае, когда мы делаем скрытую реализацию некоторого типа, имеет смысл ставить метку экспорта у тех процедур, которые реализуют интерфейсные. Смотришь на модуль - и сразу видно, что от интерфейса, а что дополнительно для реализации... Благо язык позволяет ставить ничего не значащую * у процедуры неэкспортированного типа... Как вариант: не звёздочка, а жирность без звёздочки. Не объясните по-подробнее? А то я что-то запутался. "Интерфейсные" - значит "имеющие реализацию", а "дополнительно для реализации" - "абстрактные"? И где именно помечать: процедурную переменную в самой записи или конкретную процедуру?ИМХО, звёздочка, использованная не по назначению - трюк. И его смысл следует оговаривать зарание, иначе станет только хуже: новичёк, увидев такое, решит, что неправильно понял документацию. Разобраться-то он, конечно, разберётся, но потеряет много времени. |
Автор: | Илья Ермаков [ Суббота, 26 Июль, 2008 10:52 ] |
Заголовок сообщения: | Re: Разное по оформлению кода |
Нет, дополнительные - это те, которые никогда не вызываются снаружи. Т.е. служебные, внутренние модуля реализации. А "реализующие интерфейсные" - это те, которые в базовом абстрактном типе экспортированы, а в нашем скрытом - реализованы. Они ведь будут вызываться непосредственно снаружи модуля (через виртуальную таблицу), т.е. по сути, экспортированы (ещё в базовом типе); при их написании ориентируемся на контракт и т.п. У Оминк где-то тоже видел такую фишку, но трудно понять - то ли это просто тип сначала был экспортирован, а потом скрыт, а убирать звёздочку у процедур не стали, то ли они тоже экспериментировали с таким стилем. А разрешение метить звёздочкой элементы неэкспортированного владельца - это по стандарту языка. В КП/ББ это, к тому же, влияет на доступность через Meta. |
Автор: | Евгений Темиргалеев [ Среда, 28 Сентябрь, 2011 23:47 ] |
Заголовок сообщения: | Re: Разное по оформлению кода |
Если RETURN ставить только в конце процедуры-функции (как в Обероне-07), то его жирным можно не выделять. |
Автор: | Владислав Жаринов [ Четверг, 06 Октябрь, 2011 09:00 ] |
Заголовок сообщения: | Re: Разное по оформлению кода |
А это всё со звёздочками как-то связано с тем, что на схеме из этого поста названо "разновидимостью"? |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |