我了解 R 中的一些运算符和函数在使用帮助函数之前需要反引号。但是,我不明白为什么?function(){}也有效。有人对此有任何想法吗?
Moo*_*per 10
让我们看看?使用 {flow} 包的代码中发生了什么,它可以帮助您检查代码所采用的逻辑路径(遵循整行):
flow::flow_run(?function(){}, out = "png")
Run Code Online (Sandbox Code Playgroud)
我们看到,当表达式是一个调用时,我们调用utils:::.helpForCall
让我们看看那里发生了什么,我们不能flow::flow_run直接调用,所以我们调用flow::flow_debugonce设置utils:::.helpForCall并?再次调用
flow::flow_debugonce(utils:::.helpForCall, out = "png")
?function(){}
Run Code Online (Sandbox Code Playgroud)
在那里我们看到,当输入是一个调用时,我们utils:::.tryHelp以字符串形式调用函数的名称。function(){}是调用function
并utils:::.tryHelp("function")打开帮助文件。
奖金
@rawr 想知道为什么?cars[1]不起作用,我没有深入研究它,但乍一看我们看到代码在哪里采用了不同的路径.helpForCall:
flow::flow_debugonce(utils:::.helpForCall, out = "png")
?mtcars[1]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
266 次 |
| 最近记录: |