有一个向量 x,我需要在内部函数中递归地更改它。在这里,我使用<<-
全局赋值运算符对此的实现:
outer <- function(){
x <- rep(1,5)
inner <- function(i){
if(i> length(x))return(x)
x[i] <<- 2 ## don't work with <-
inner(i+1)
}
inner(1)
}
outer()
[1] 2 2 2 2 2
我的问题是是否有另一个/更好的实现可以避免使用 <<-
?请注意,我不想替换 recursion ,只是想问是否有更好/更安全的设计?