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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。