b <- function() {
x = 10
}
c <- function() {
d = b()
print(x)
}
当我不允许使用全局变量时,如何访问元素 "x"(<<-)
您的功能 b
返回值 10
. 您的功能 c
运行 d = b()
的返回值,所以它将 b
的新对象,名为 d
. 这很好!你不希望你的 c
函数,以便知道这个名字 x
在内部使用 b
定义 - 您刚刚提供了一个新的名称 d
!
变化 print(x)
到 print(d)
你就可以了。
顺便说一下,不要用 c
作为自定义函数的名称。现在已经有一个名为 c
,这也是最常用的功能之一。创建你自己的 c()
会引起问题。
如果你的例子没有真正反映出你想要的东西,有可能你是想返回b真正计算的现有值,以及x值。 你可以返回一个列表,其中既可以包含原始的返回值,也可以包含x的值。
b <- function() {
x=10
...
list(x=x, previous=whatever_it_previously_returned)
}
或者你也可以看看闭合,但你需要更精确地解释你想达到的目的,以及你想在哪里获得访问权。x
.