-
Notifications
You must be signed in to change notification settings - Fork 106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Публичные и непубличные символы пакетов #268
Comments
иии тут мы опять приходим к тому, что обсуждали полгода назад.
Ну или наоборот private (как в typescript - свойство с необъявленной видимостью является публичным). |
Я за предложение @nixel2007 |
только это внезапно обрушит все имеющиеся скрипты и библиотеки... |
@nixel2007 логично. |
@nixel2007 я вообще-то совсем не об этом... и вдобавок, не понял о чем говорите вы с @artbear Я говорю о том, что сейчас в некоторой библиотеке может быть модуль "РаботаСHTTP", но он нужен для внутренних целей библиотеки и в клиентском скрипте не должен быть виден. А теперь, поясните мне, плиз, о чем вы сейчас говорите? |
@EvilBeaver ты предлагаешь регулировать это на уровне библиотеки/packagedef.. а я и Артур намекают на то, что это должно быть в самом движке у директив импорта. |
Почему у импорта-то? Я импортирую пакет. Что я тут буду регулировать? Что означает то слово Экспорт в переписке выше? |
@nixel2007 |
@EvilBeaver т.е. к Классы и Модули добавляем еще два уровня рядом - ПриватныеКлассы и ПриватныеМодули, этим и достигается регулировка. |
Ну а вы что имели в виду? |
Я вообще не совсем про это. Единственная возможность использовать РаботаСHTTP внутри скрипта - импортировать его через "Использовать". причем не важно, сторонняя ли это библиотека, подключаемая по имени, или файл в соседнем модуле, подключаемый по пути с переопределенным загрузчиком (как это сделано в gitsync, например). Суть одна - я импортирую библиотеку в текущий файл скрипта. Но я не хочу отдавать классы и методы, которые предоставляет эта импортируемая библиотека "наружу" - в скрипт, который будет импортировать уже мою библиотеку. Для этого я говорю: "уважаемый оскрипт (с) подгрузи мне вот эту туеву хучу методов только в мою область видимости" и пишу Моя хотелка реализована - внутри моей библиотеки я работаю с методами из РаботаСHTTP, а вызывающий мою библиотеку скрипт вообще ничего не знает про http. |
Понял. Да это тоже надо. Но семантику видимостей нужно серьезно продумывать |
2.0? |
Перекликается с задачей #253
Библиотека может иметь внутри себя служебные классы и модули, которые не нужны потребителю библиотеки. Но за счет того, что пространство имен единое - они будут видны. Нужны средства управления инкапсуляцией содержимого библиотеки.
The text was updated successfully, but these errors were encountered: