2014-02-17 5 views
3

Когда import ИНГ что-то в модуль D, вы можете либо написатьD: В чем разница между целенаправленным и общим импортом?

import std.string; 

или

import std.string: format; 

Помимо очевидных смысловых различий, это имеет какие-либо другие эффекты? Например, размер двоичного кода, время компиляции, что-то еще?

ответ

2

Я бы добавил к ответу ratchet freak, что именованный импорт (или несмотря на имя) позволяет избежать столкновения имен. Имея только то, что вам нужно в текущей области, когда кодирование приятно избегать ошибок и иметь больше свободы при именовании вещей. Если вы используете только import std.string;, вы не сможете назвать свои переменные/функции succ, center и т. Д.

3

размер двоичного файла будет неизменным, (каждый модуль импорта связан с файлом .d и будет скомпилирован и скомпонованы в целом), линкер не принимает импорт в расчет при выбраковках неиспользуемого кода

время компиляции может быть немного быстрее из-за того, что вам не нужно заполнять таблицу больших таблиц.

Смежные вопросы