是" :::"一个运营商?

时间:2015-03-29 03:16:33

标签: r operator-keyword

我正在浏览一些R代码。某些环境定义为

"PackageName":::."EnvironmentName" 

我不能得到的是什么:::和。是给?使用:::只是一个约定或某种范围操作符?此外,"。"代表什么?

THX

1 个答案:

答案 0 :(得分:2)

:::是用于访问包名称空间中的内部变量的运算符。 例如

utils:::.addFunctionInfo

.addFunctionInfo包访问函数utils:::是一个运算符,基础函数是`:::`(pkg, name)。可以使用参数"utils"".addFunctionInfo"

调用它
> `:::`("utils", ".addFunctionInfo")
function (...) 
{
    dots <- list(...)
    for (nm in names(dots)) .FunArgEnv[[nm]] <- dots[[nm]]
}
<bytecode: 0x000000002e4240d0>
<environment: namespace:utils>

当R解析器看到utils:::.addFunctionInfo时,它会将其解释为`:::`("utils", ".addFunctionInfo") 您可以使用

获取有关操作员的帮助
?`:::`

这种情况下的点只是变量名称的一部分。在unix中,它通常用于表示隐藏文件。