【问题标题】:The Invisibility of the NULL value that is returned by a loop [duplicate]循环返回的NULL值的不可见性[重复]
【发布时间】:2013-12-16 22:19:33
【问题描述】:

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

循环语句语句返回的值始终为NULL,并且不可见地返回。

(sec. 3.2.2 "Looping")

不可见返回值是什么意思?

【问题讨论】:

  • @SeñorO 问题并不是真正询问invisible 的功能(尽管问题与该功能密不可分)。我不认为它属于完全重复(尽管我可能会误解)。
  • @SimonO101 我认为你是对的 - 但我认为这个问题的答案将不可避免地完全重复。

标签: r loops null


【解决方案1】:

所有函数都必须返回一些东西。 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

【讨论】:

    猜你喜欢
    • 2018-11-14
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 2017-07-31
    • 1970-01-01
    相关资源
    最近更新 更多