OberonCore
https://forum.oberoncore.ru/

Множественные псевдонимы в IMPORT
https://forum.oberoncore.ru/viewtopic.php?f=29&t=410
Страница 1 из 1

Автор:  Евгений Темиргалеев [ Воскресенье, 18 Март, 2007 13:54 ]
Заголовок сообщения:  Множественные псевдонимы в IMPORT

Работал с подсистемой Coco/R. Обнаружил для себя весьма интересный факт (который для меня не был очевиден):

Модуль можно импортировать как без псевдонима + с любым числом псевдонимов. Самое главное чтобы идентификаторы на уровне модуля не дублировались.
Код:
IMPORT MathExprS, ES := MathExprS;

Автор:  Info21 [ Воскресенье, 18 Март, 2007 15:39 ]
Заголовок сообщения:  Re: Множественные псевдонимы в IMPORT

Евгений Темиргалеев писал(а):
Модуль можно импортировать как без псевдонима + с любым числом псевдонимов. Самое главное чтобы идентификаторы на уровне модуля не дублировались.
Код:
IMPORT MathExprS, ES := MathExprS;


Да, забавный факт. Не знал. Кажется, что может пригодиться. Спасибо.

Автор:  Борис Рюмшин [ Воскресенье, 18 Март, 2007 18:39 ]
Заголовок сообщения: 

Это не запрещено определением языка, однако, не рекомендую это дело применять на практике, т.к. при исправлении компилятора оно может уйти.

Не пытайтесь пользоваться недокументированными возможностями. :)

Автор:  Илья Ермаков [ Воскресенье, 18 Март, 2007 18:47 ]
Заголовок сообщения: 

Нет, это дело не уйдет.
Тут все в порядке - идеология псевдонимов позволяет не только сократить псевдонимом имя модуля, но и наоборот - прозрачно перенаправить сервис на другой модуль. Никто не мешает перенаправить несколько сервисов на обслуживание одному модулю, если он поддерживает все интерфейсы...
(Ну, например: In := Inout, Out := Inout...)

Автор:  Борис Рюмшин [ Воскресенье, 18 Март, 2007 19:30 ]
Заголовок сообщения: 

Возможно.

В таком случае нужно это задокументировать.

Автор:  Илья Ермаков [ Воскресенье, 18 Март, 2007 22:19 ]
Заголовок сообщения: 

Ага, и обмыть не забыть :-) :-) Чтоб не убрали в следующих версиях...

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/