[英]R .call argument in stop function
stop
函數中.call
參數的用途是什么?
幫助頁面( stop
)說明:
呼叫。 logical,表示調用是否應成為錯誤消息的一部分。
有人可以通過一個直觀的例子解釋.call
參數嗎?
謝謝
試試吧:
f = function () stop('foo')
g = function () stop('bar', call. = FALSE)
f() # Error in f(): foo
g() # Error: bar
...並比較輸出。 這是唯一的區別。
參數的使用是指您希望隱藏最終用戶的不相關細節,否則這些細節會淹沒實際的錯誤消息或主動誤導。
#' @export
import = function (module, ...) {
# … some code here …
module_path = find_module(module)
# … more code here …
}
find_module = function (module) {
# … some code here …
if (no_module_found)
stop('Unable to load module ', module, '.', call. = FALSE)
}
現在,您可以看到函數import
是從包中導出的,但函數find_module
不是。 因此,用戶不知道這個功能, 也不應該知道它:它是一個不相關的實現細節。 如果我沒有指定call. = FALSE
call. = FALSE
在stop
上方,則該錯誤消息將不包含該隱藏功能,這將只是混淆了包的用戶的參考。
1這是一個小謊言,代碼現在不同了; 但該軟件包的早期版本確實包含此代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.