1

R のトップレベル タスク コールバックのドキュメントでは、コールバックにはexprvalueok、およびの4 つの引数が送信されますvisible。これらはほとんど意味があります。しかしvisible、次のように定義されています。

タスクからの出力が印刷されたかどうか。

visible==TRUEこれは、コンソール (またはどこでも) に何かが出力された場合と、コンソールに何も出力されなかった場合を意味すると解釈しvisible==FALSEます。

質問:目に見える出力があるので、またはがvisible==TRUEいつ使用されるかを期待します。しかし、議論は実際にはこれらの場合にあります。catprintvisibleFALSE

例:

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

最後の 2 つの例にあるべきではありませんvisibleか? TRUEそうでない場合、なぜですか?

4

1 に答える 1

2

関数が実行中に何かを出力するかどうかではなく、関数からの戻り値visibleが出力されるかどうかを指すと思います。ほとんどのメソッドは実際には呼び出しで終了し、印刷されたオブジェクトを目に見えないように返すことに注意してください。同様に、 からの印刷出力は、 invisible である戻り値とは異なります。printinvisible()catNULL

于 2013-11-01T12:17:46.227 に答える