В чем разница между
private import tango.io.File;
и
import tango.io.File;
на языке программирования D?
Было время, когда импорты были публичными
по умолчанию; то есть, когда вы импортировали другой модуль, его содержимое было видно не только из вашего модуля, но и из любого модуля, который импортировал ваш модуль.
В конце концов, это было изменено так, что они стали приватными
по умолчанию.
Однако есть несколько причин вручную указывать private
:
Импорт можно сделать public
, если он находится в public
контексте. Например:
public:
// много всего
import blah; // о нет, все могут видеть мои импорты!
DMD изобилует ошибками, связанными с импортом. Например, выборочные импорты по умолчанию являются публичными, несмотря на то, что якобы являются приватными. Это может вызвать всевозможные ужасные кошмарные сценарии, когда символы (ошибочно), импортированные публично в одном модуле, приводят к тому, что символы в совершенно другом модуле просто исчезают и ломают вашу программу.
Другими словами, они, вероятно, приватны
в Tango, потому что разработчики слишком долго работали с DMD, чтобы доверять ему в том, что он сделает это правильно.
В D 2.0 частный импорт
является синонимом импорта
, в отличие от общедоступного импорта
. По умолчанию импорт частный. См. Документацию по модулям
РЕДАКТИРОВАТЬ: По умолчанию импорт также является частным D 1.0 .