Импорт и Зависит - PullRequest
       47

Импорт и Зависит

18 голосов
/ 27 марта 2012

Я прочитал два недавних поста, в которых обсуждаются Зависит и Импортируется

Но у меня есть четыре вопроса, связанных с затяжными вопросами:

  1. Предположим, яхочу, чтобы два пакета также были доступны конечному пользователю, когда они загружаются в мой пакет.Есть ли веская причина не использовать Зависит в этом контексте?(Смысл в том, чтобы загрузить все три пакета с помощью команды, которая загружает только один пакет.)

  2. Можно ли указывать пакет в полях «Зависит» и «Импорт»?

  3. Если пакет указан в разделе «Зависит», есть ли смысл также указывать его в списке «Импорт»?Или преимущества импорта уже сведены на нет с помощью метода «Зависит»?

  4. Правильно ли следующее?Пакет должен быть указан в поле Imports файла DESCRIPTION, если и только если пакет импортирован (полностью или частично) в файл NAMESPACE.

Большое спасибо!

Дэвид

1 Ответ

11 голосов
/ 27 марта 2012

Пара моментов, и я признаю, что иногда я нахожу это запутанным.Но я недавно пересмотрел его, и вот мое мнение:

  1. «Зависит» - это то, как мы привыкли делать вещи;он наиболее близок к «просто загрузке всех трех»: когда ваш третий зависит от двух других, все три будут загружены.

  2. С помощью пространств имен мы также можем импортировать.Это приводит только к указанным символам, которые могут быть данными или функциями.Я использую это иногда;он не будет загружать другой пакет, из которого вы импортируете, а просто сделает указанные символы доступными.Таким образом, он «легче», чем «Зависит».

  3. Если вы используете «Зависит», в импорте нет необходимости.

  4. Это правильно: Если вы используете объявления в NAMESPACE для импорта символов из других пакетов, этот другой пакет должен быть указан в разделе «Импорт»: в файле DESCRIPTION.

...