globalVariables
位于 utils
包(package)。 说明
对于 globalVariables
,提供的名称是当 check
工具应用于此包时应被视为全局定义的函数或其他对象。对 globalVariables
的调用将包含在包的源代码中。同一包中的重复调用会累积全局变量的名称。
典型的例子是引用类中的字段和方法,它们对于 codetools
来说似乎是全局对象。 (这种情况由 setRefClass()
和朋友使用提供的字段和方法名称自动处理。)
对于 suppressForeignCheck
,提供的名称是在外部函数调用中用作 .NAME
的变量,不应由 checkFF(registration = TRUE)
检查。如果没有此声明,则假定简单字符串以外的表达式计算为已注册的本机符号对象。将检查调用类型( .Call
、 .External
等)和参数计数。通过此声明,通常会抑制对这些名称的检查。 (如果代码使用仅应在运行时计算的表达式,则可以通过将其包装在 dontCheck
函数调用中或将其保存到局部变量并抑制有关该变量的消息来抑制消息。请参阅示例以下。)
用法
globalVariables(names, package, add = TRUE)
suppressForeignCheck(names, package, add = TRUE)
参数
names |
对象名称的字符向量。如果省略,则将返回包中声明的当前全局变量列表,不变。 |
package |
相关包,通常是包的字符串名称,也可以是对应的命名空间环境。 当对 |
add |
|
细节
声明的全局变量和本机符号对象的列表存储在包命名空间中的元数据对象中,假设 globalVariables
或 suppressForeignCheck
调用作为包源代码中的顶级调用发生。
检查命令,在包中实现tools
,在检查之前查询列表R包中的源代码以解决可能出现的问题。
globalVariables
被介绍于R2.15.1 和suppressForeignCheck
被介绍于R3.1.0 因此两者都应该有条件地使用:参见示例。
值
globalVariables
返回声明的全局变量的当前列表,可能被此调用修改。
suppressForeignCheck
返回不检查的本机符号对象的当前列表。
注意
全局变量列表实际上属于受限制的范围(例如,一个函数或一组方法定义),而不是整个包。但是,实现更精细的控制需要在 check
和/或 codetools
中进行更改,因此在此版本中,信息存储在包级别。
例子
## Not run:
## assume your package has some code that assigns ".obj1" and ".obj2"
## but not in a way that codetools can find.
## In the same source file (to remind you that you did it) add:
if(getRversion() >= "2.15.1") utils::globalVariables(c(".obj1", "obj2"))
## To suppress messages about a run-time calculated native symbol,
## save it to a local variable.
## At top level, put this:
if(getRversion() >= "3.1.0") utils::suppressForeignCheck("localvariable")
## Within your function, do the call like this:
localvariable <- if (condition) entry1 else entry2
.Call(localvariable, 1, 2, 3)
## HOWEVER, it is much better practice to write code
## that can be checked thoroughly, e.g.
if(condition) .Call(entry1, 1, 2, 3) else .Call(entry2, 1, 2, 3)
## End(Not run)
作者
John Chambers and Duncan Murdoch
也可以看看
dontCheck
。
相关用法
- R glob2rx 将通配符或通配符模式更改为正则表达式
- R getFromNamespace 用于开发命名空间的实用函数
- R getS3method 获取 S3 方法
- R getWindowsHandles 在 MS Windows RGui 中获取 Windows 句柄
- R getWindowsHandle 获取 Windows 句柄
- R getAnywhere 检索 R 对象,包括从命名空间检索
- R getParseData 从对象获取详细的解析信息
- R select.list 从列表中选择项目
- R COMPILE 编译用于 R 的文件
- R readRegistry 读取 Windows 注册表配置单元
- R browseVignettes 在 HTML 浏览器中列出晕影
- R hasName 检查姓名
- R nsl 按主机名查找 IP 地址
- R edit 调用文本编辑器
- R create.post 准备电子邮件和帖子的辅助函数
- R hsearch-utils 帮助搜索实用程序
- R download.packages 从类似 CRAN 的存储库下载软件包
- R DLL.version MS Windows 上的 DLL 版本信息
- R ls.str 列表对象及其结构
- R Rscript R 前端脚本
- R bug.report 发送错误报告
- R PkgUtils 用于构建和检查附加包的实用程序
- R cite 引用参考书目条目
- R SweaveSyntConv 转换 Sweave 语法
- R RSiteSearch 搜索文档中的关键词或短语
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Declarations Used in Checking a Package。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。