RJ-*_*RJ- 2 r variable-assignment
我最近在R语言中找到了一个怪癖,我不确定这是故意还是错误.
以下是一个例子:
# Simple print function
print.func <- function(n) {print(n)}
# Test it out
print.func(1:10)
[1] 1 2 3 4 5 6 7 8 9 10
# However, if we wrap an assignment into the function
print.func(a <- 1:10)
Run Code Online (Sandbox Code Playgroud)
我不明白的是,在print.func所有分配中,所有分配都应该局限于本地功能环境,但在这种情况下,a在全局环境中分配.
只有当我们做类似的事情时,我才会期待这种行为print.func(a <<- 1:10).
任何想法为什么会这样?