不需要将 `!!!` 运算符导入到包 DESCRIPTION 中?

No need to import `!!!` operators into the package DESCRIPTION?

我正在尝试使用 dplyr 构建一个包。我大量使用了 rlang 中的 !!!!! 运算符。

然而,我没有import明确地使用它们,尽管这个包似乎仍然有效。

我是不是遗漏了环境中的某些东西,或者 import(dplyr) 是否以某种方式弥补了这一点?

正如上面的评论所述,dplyrrlang 重新导出 tidyeval 依赖项,因此如果您在导入中有 dplyr,则不需要显式导入 [=11] =].但是,可能值得一问您是需要所有 dplyr,还是只需要 tidyeval 部分 - 将依赖性保持在最低限度是有道理的。 rlang 是一个非常轻量级的依赖包,所以如果你可以直接依赖它,它可以让你的包更快地安装并且(理论上)不太可能因外部更新而中断。

如果您发现自己在包开发中使用了大量的引用和取消引用运算符,您也可以查看 usethis package's "tidyverse development helpers"usethis::use_tidy_eval() "imports a standard set of helpers to facilitate programming with the tidy eval toolkit." 这是将 rlang 添加到 Imports 和 imports/re-exports 并记录 (en)quo(s)(en)sym(s)、[=20 的一种快速简便的方法=]、函数、.data 代词和 :=。那么你应该拥有在整个包中使用 tidyeval 所需的东西。