【问题标题】:Is ":::" an operator?“:::”是运算符吗?
【发布时间】:2015-03-29 03:16:33
【问题描述】:

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

"PackageName":::."EnvironmentName" 

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

谢谢

【问题讨论】:

  • ?':::' 点只是变量名的一部分
  • 谢谢。我试过 help(:::),我想我还有很多东西要学。所以基本上以“。”开始环境。是约定吗?
  • 参见 R inferno 中的第 42 页。

标签: r operator-keyword


【解决方案1】:

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

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 中,它通常用于表示隐藏文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-13
    • 2010-12-03
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 2020-08-10
    相关资源
    最近更新 更多