6

在 .GlobalEnv 中,我定义了以下变量和函数

x = 0; 
foo <- function(t=x) {x=1; t}

当我通过以下方式调用函数时

foo() # gives 1
foo(t=x) # gives 0

谁能帮忙解释一下?谢谢!!!

4

1 回答 1

1

要将评论变成答案:

在第一种情况下,函数知道它需要传递xt. 它x在其词法范围内寻找并找到x=1. 在第二种情况下,您x=0从全局环境中传递,因此它不会再次在词法范围内查找它并将其直接传递给t.

于 2015-05-01T23:20:40.583 回答