循环返回的NULL值的不可见性

时间:2013-12-16 22:19:33

标签: r loops null

根据R语言定义(版本3.0.2),

  

循环语句语句返回的值始终为NULL并且以不可见的方式返回。

sec. 3.2.2 "Looping"

返回隐形的值是什么意思?

1 个答案:

答案 0 :(得分:3)

所有功能必须返回一些东西。 invisible表示用户看不到返回值。考虑下面的简单函数:

f <- function(){
    x <- 2
    return( x )
}

#  Returns 2..
> f()
[1] 2

#  Returns 2 but you can't see it
f <- function(){
    x <- 2
    return( invisible(x) )
}

> f()
> 
#  But it is still returned...

str(f())
#num 2

您可以看到for循环的返回值,例如......

str( for( i in 1:3 ){} )
# NULL

即使invisible本身也必须返回一些东西......

str( invisible() )
# NULL