我有一个对我来说很奇怪的问题。为什么以下不会给我一个错误?
foo <- function(a, b) {
a <- 2
a * b
}
b <- 7
foo(a, b)
[1] 14
但
exists("a")
[1] FALSE
为什么foo(a, b)
应该导致Error: object 'a' not found
的期望错误?
答案 0 :(得分:5)
foo(a,b)
不会返回错误,因为您在函数本身中设置了变量a <- 2
。该函数实际上从未使用您传递的a
,因此您不会收到错误。
如果您对a<-2
发表评论,那么您将收到预期的错误。 exists
默认检查全局环境,而不是在函数中创建变量的存在。