18

我读过最近两篇讨论 Depends 和 Imports 的文章

但我有四个挥之不去的相关问题:

  1. 假设我希望最终用户在我的包中加载两个包时也可以使用它们。在这种情况下是否有充分的理由不使用 Depends ?(这里的重点是通过只加载一个包的命令来加载所有三个包。)

  2. 是否可以在 Depends 和 Imports 字段中指定一个包?

  3. 如果一个包在 Depends 中列出,是否也需要在 Imports 中列出它?还是已经使用 Depends 否定了 Imports 的好处?

  4. 以下是正确的吗?当且仅当在 NAMESPACE 文件中(全部或部分)导入包时,才应在说明文件的 Imports 字段中列出包。

非常感谢!

大卫

4

1 回答 1

11

几点,我承认我有时也觉得这很令人困惑。但我最近重新审视了它,这是我的看法:

  1. “取决于”是我们过去做事的方式;它最接近“只加载所有三个”:当您的第三个依赖于其他两个时,所有三个都将被加载。

  2. 使用命名空间,我们也可以导入。这仅引入了指定的符号,可以是数据或函数。我有时用这个;它不会加载您从中导入的其他包,而只会使所述符号可用。因此,它比 Depends 更“轻”。

  3. 如果你做 Depends,就不需要 Imports。

  4. 这是正确的:如果您在 NAMESPACE 中使用声明从其他包导入符号,则该其他包需要列在 Imports: 中的DESCRIPTION 文件中。

于 2012-03-27T19:05:23.787 回答