【发布时间】:2017-08-15 13:13:39
【问题描述】:
我正在阅读 Hadley Wickham 的 Advanced R 以更好地理解这门语言。我在环境一章中遇到了一个部分,他谈到了局部变量优于全局变量的偏好。
例如,
h <- function(){
x<-10
function(){
x
}
}
i<-h()
x<-20
i()
这可能会返回10 而不是20,因为本地x 会覆盖全局x。
但是,当我对以下代码应用类似的逻辑时,全局变量 y 会覆盖本地 y。
x <- 0
y <- 10
f <- function() {
x <- 1
g()
}
g <- function() {
x <- 2
y<-5 #Added by me
h()
}
h <- function() {
x <- 3
x + y
}
f()
输出为13。我会期待8,因为我在h() 的调用函数g() 中创建了一个局部变量y。不是吗?
我将不胜感激任何 cmets 和指导。
【问题讨论】:
标签: r global-variables environment