我错了
我有一个问题对我来说似乎很奇怪。为什么以下没有给我错误?
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
?
foo(a,b)
不返回错误,因为您在函数本身中设置了变量a <- 2
。该功能实际上从未使用您通过的a
,因此您不会遇到错误。
如果您评论a<-2
,那么您将获得预期的错误。exists
默认检查全局环境,而不是在函数中创建的变量的存在。