考虑这个 R 包有两个函数,一个是导出函数,另一个是内部函数
hello.R
#' @export
hello <- function() {
internalFunctions:::hello_internal()
}
你好_内部.R
hello_internal <- function(x){
print("hello world")
}
命名空间
# Generated by roxygen2 (4.1.1): do not edit by hand
export(hello)
当选中此项时(devtools::check()
)它返回NOTE
There are ::: calls to the package's namespace in its code. A package
almost never needs to use ::: for its own objects:
‘hello_internal’
Question
鉴于NOTE
says 几乎从不,什么情况下will需要使用一个包:::
为了自己的对象?
Extra
我有一个非常相似的相关问题 https://stackoverflow.com/q/36805601/5977215我确实需要的地方:::
对于内部功能,但我不知道why这是必需的。希望这个问题的答案能够解决那个问题。我怀疑解锁环境正在做一些我没有预料到的事情,因此必须使用:::
关于内部函数。
如果它们被认为是彼此重复的,我将删除另一个。
在正常情况下你不应该需要这个。如果您以不寻常的方式调用父函数(例如,您手动更改了其环境,或者从未附加包的另一个进程调用它),则可能需要它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)