隐藏变量在 R 中的表现如何?

Rya*_*ell 5 r

是否有任何重要的 [1] 理由不导出具有表单名称的函数。fnname在 R 包中?

我知道点前缀变量的主要用途是在使用诸如 之类的函数搜索环境时将变量表示为隐藏ls,并表示对象或列表中的字段应像 S4 .Data 字段一样被视为私有.

test_env           <- new.env(parent = emptyenv())
test_env $ .hidden <- 10

ls(test_env)
# character(0)

ls(test_env, all.names = TRUE)
# ".hidden"
Run Code Online (Sandbox Code Playgroud)

据我所知,该约定是在一些实用程序环境搜索函数的级别上执行的,但并未在整个 R 语言中执行。

变量的点前缀是否会改变核心语言特征的行为,如词法范围或各种对象系统,如果是这样,这是否会使导出点前缀函数变得不合适或危险?

感谢您提供的任何帮助或信息。

笔记:

[1] 意义重大我的意思是非文体;有问题的库使用特殊的前缀和后缀来标记函数类型签名的各个方面,有点像plyr的特殊命名约定。滥用点前缀变量通常是非语义的,但在这种情况下,值得复合含义。