":::" 是运算符吗?

Is ":::" an operator?

我正在查看一些 R 代码。某些环境定义为

"PackageName":::."EnvironmentName" 

我不明白的是 ::: 和 .是给? using ::: 只是一个约定还是某种范围运算符?此外,“。”是什么意思?代表什么?

感谢

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

utils:::.addFunctionInfo

utils 包中访问函数 .addFunctionInfo::: 是一个运算符,底层函数是 `:::`(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 中,它通常用于表示隐藏文件。