在函数内声明的变量只存在(除非被传递)在该函数内。
x <- 1 foo <- function(x) { y <- 3 z <- x + y return(z) } y
错误:找不到对象“y”
传递给函数然后重新分配的变量会被覆盖,但仅限于函数内部。
foo <- function(x) { x <- 2 y <- 3 z <- x + y return(z) } foo(1) x
5
1
在比函数更高的环境中分配的变量存在于该函数中,不会被传递。
foo <- function() { y <- 3 z <- x + y return(z) } foo()
4