假设我有这两个功能:
fInner<-function()
{
# Do some complicated stuff, and...
I<<-I+1
}
fOuter<-function()
{
I<-0
fInner()
print(I)
}
调用fOuter()
会产生错误:Error in fInner() : object 'I' not found
. 我知道,修复它的一种方法是将示例重写为
fOuter<-function()
{
fInner<-function()
{
I<<-I+1
}
I<-0
fInner()
print(I)
}
但是,如果我不想那样嵌套函数怎么办?就我而言fInner
,这是一个非常繁重且复杂的函数(我可能想将其移到我的库中),并且fOuter
实际上是一个临时创建的函数,它定义了一个迭代器。我的代码中将有许多fOuter
-class 函数,因此嵌套它们将需要fInner
在每个小的迭代器定义中复制内部。
我怀疑该解决方案与环境有关,但我不知道该怎么做。任何人都可以帮忙吗?