读取全局变量

Reading global variables

我能找到的只是如何写入全局变量,而不是如何读取它们。

错误代码示例:

v = 0;

test <- function(v) {
  v ->> global_v;
  v <<- global_v + v;
}

test(1);
print(v);

这会产生 2 因为 v ->> global_vv 视为等于 1 的局部变量 v。我可以用什么替换该行 for global_v 从全局 v?

中获取 0

当然,我问的是与“使用不同的变量名”不同的解决方案。

您可以使用 with(globalenv(), v) 在全局环境而不是函数中计算 vwith 从它的第一个参数构造一个环境,并计算该环境中的后续参数。 globalenv() returns 全局环境。将它们放在一起,您的函数将变成这样:

test <- function(v) {
  v <<- with(globalenv(), v) + v;
}