【发布时间】:2017-04-25 18:54:49
【问题描述】:
以下两个是否等价,即它们是否定义了相同的功能?
function(df) {lm(mpg ~ wt, data=df)}
和
function(df) lm(mpg ~ wt, data=df)
特别是,我很困惑为什么可以在 R 中编写没有大括号的函数。
当函数定义超过一行时,是否只需要大括号来定义函数?
(也许是关于 R 和 Python 在技术上如何支持 C 中的分号,但使用它们被认为是不好的做法?)
这似乎可以解释为什么人们在定义匿名函数时通常不使用大括号,因为匿名函数通常很短,因此可以放在一行中,所以大括号不是必需的。
但是是否可以传递定义超过一行的匿名函数(显然这可能是不好的做法,但这不是我的意思)?
如果可能,是否需要大括号?
【问题讨论】:
-
@jogo 你说得对,谢谢你指出——已在编辑中修复
-
关于“有没有可能”,你可以试试。例如,
y = {x = 1; x + 2}有效,您可以通过实验找出方法。正如 jogo 所说,大括号包裹着一个表达式,恰好在函数中很有用。 -
@jogo,请作为答案发布...