为什么 `:=` 用作中缀运算符?
为什么以下内容在 R 中有效?
> `:=` <- function(x, y) x + y
> 1 := 2
[1] 3
我的理解是用户定义的中缀运算符需要 %
。还有其他(可能更容易输入)选项吗?
Why does the following work in R?
> `:=` <- function(x, y) x + y
> 1 := 2
[1] 3
My understanding was that %
was required for user-defined infix operators. Are there other (possibly easier to type) options available?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是因为
:=
与<-
或<<-
一样,定义为LEFT_ASSIGN
R 的解析器。请参阅http://svn.r-project.org/R/trunk/src/main /gram.y
这意味着
:=
是一种特殊情况,您也可能不希望有任何其他选项可用。This is because
:=
is, like<-
or<<-
, defined asLEFT_ASSIGN
for the parser of R.See http://svn.r-project.org/R/trunk/src/main/gram.y
This means that
:=
is a special case and you may as well not expect that any other options are available.