我想问一下函数 h 如何看到函数 g 中定义的变量 v1 。 h和g都在 f 中定义。我认为解决方案是定义环境 e1 并将v1放在那里。 但这不起作用,当我运行ls(e1)时我得到字符(0),我不知道为什么。
e1 <- new.env()
f <- function(){
g <- function(){
e1$v1 <- 5
}
h <- function(){
print(e1$v1)
}
h()
}
f()
提前谢谢
答案 0 :(得分:2)
您实际上从未运行过g()
函数。尝试在g()
之前添加h()
。
(虽然,我觉得有必要补充一点,为了人们在将来找到这个问题的好处,这种东西,再次起作用R的自然范围行为是一个危险的事情可以玩。所以要小心!)