在documentation for Top-level Task Callbacks in R中,会向回调发送四个参数:expr
,value
,ok
和visible
。这些大多有意义。但visible
定义为:
是否打印了任务的输出。
我将此解释为当visible==TRUE
输出到控制台(或任何地方)并且visible==FALSE
没有输出到控制台时的含义。
问题:当使用visible==TRUE
或cat
时,我希望print
因为有可见的输出。但在这些情况下,visible
参数实际上是FALSE
。
示例:
addTaskCallback(function(expr,value,ok,visible) {cat(visible,'\n'); TRUE}, name='ex')
1 # makes sense, something is printed
x <- 1 # makes sense, nothing is printed
x # makes sense, something is printed
print(x) # ???
cat(x) # ???
removeTaskCallback('ex') # cleanup
最后两个例子中不应该visible
为TRUE
吗?如果没有,为什么?
答案 0 :(得分:2)
我相信visible
是指打印函数中的返回值,而不是函数是否在执行期间打印任何内容。请注意,大多数print
方法实际上以invisible()
调用结束,以无形地返回打印对象。同样,cat
的打印输出与其返回值不同,后者无形NULL
。