我注意到R函数可以包含未作为参数给出的变量。例如:
foo <- "hello world"
bar <- 10
test.fun <- function(){print(foo)}
test.fun()
[1] "hello world"
根据我对其他语言的经验,我本来期望“NULL”,但是我得到了“hello world”。如果“foo”是一个全局变量,我可以理解这一点,但事实并非如此。当然这个功能应该不知道“foo”或“bar”?
这里发生了什么?有没有办法阻止它?在我看来,这很危险,因为大型代码库可能包含相同的变量名称。