读取全局变量
Reading global variables
我能找到的只是如何写入全局变量,而不是如何读取它们。
错误代码示例:
v = 0;
test <- function(v) {
v ->> global_v;
v <<- global_v + v;
}
test(1);
print(v);
这会产生 2
因为 v ->> global_v
将 v
视为等于 1 的局部变量 v
。我可以用什么替换该行 for global_v
从全局 v
?
中获取 0
当然,我问的是与“使用不同的变量名”不同的解决方案。
您可以使用 with(globalenv(), v)
在全局环境而不是函数中计算 v
。 with
从它的第一个参数构造一个环境,并计算该环境中的后续参数。 globalenv()
returns 全局环境。将它们放在一起,您的函数将变成这样:
test <- function(v) {
v <<- with(globalenv(), v) + v;
}
我能找到的只是如何写入全局变量,而不是如何读取它们。
错误代码示例:
v = 0;
test <- function(v) {
v ->> global_v;
v <<- global_v + v;
}
test(1);
print(v);
这会产生 2
因为 v ->> global_v
将 v
视为等于 1 的局部变量 v
。我可以用什么替换该行 for global_v
从全局 v
?
当然,我问的是与“使用不同的变量名”不同的解决方案。
您可以使用 with(globalenv(), v)
在全局环境而不是函数中计算 v
。 with
从它的第一个参数构造一个环境,并计算该环境中的后续参数。 globalenv()
returns 全局环境。将它们放在一起,您的函数将变成这样:
test <- function(v) {
v <<- with(globalenv(), v) + v;
}