R:查看局部变量

R:查看局部变量,r,R,我想问一下函数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()

我想问一下函数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()

e1您从未实际运行函数
g()
。尝试在
h()之前添加
g()

(虽然,为了将来发现这个问题的人们的利益,我觉得有必要补充一点,这类东西,它与R的自然范围行为相抵触,是一种危险的东西,值得玩弄。所以要小心!)