R语言 算术运算符的参数名称

ubbxdtey  于 2023-05-04  发布在  其他
关注(0)|答案(2)|浏览(191)

当查看算术运算符时,它们显示它们的参数具有名称e1e2。当使用这些名称时,看起来它们被忽略,只使用位置。

`/`(e1 = 1, e2 = 2)
#[1] 0.5

`/`(e2 = 1, e1 = 2) #Here I would have expected 2 as the result
#[1] 0.5

是否只能通过位置来定义谁是被除数,谁是除数,或者是否可以使用参数名称?
创建自定义二进制运算符时,不会忽略名称。

`%div%` <- function(e1, e2) {e1 / e2}

`%div%`(e1 = 1, e2 = 2)
#[1] 0.5

`%div%`(e2 = 1, e1 = 2)
#[1] 2
wa7juj8i

wa7juj8i1#

参见?groupGeneric
如果此组的成员作为函数调用,则将删除所有参数名称,以确保始终使用位置匹配。
注意/提示:我通过?Arithmetic进入帮助页面,然后在 Details 部分提到查看 Ops 进行调度:
一元和二元算术运算符是泛型函数:方法可以单独编写,也可以通过Ops组通用函数编写。(请参阅Ops了解如何计算分派。)

gr8qqesn

gr8qqesn2#

当我们深入研究C source code of /时,我们可以看到下面两个标量的代码片段(我不是分析源代码的RMaven,但我们可能也可以从中找到一些线索)。
似乎参数名没有被考虑,而只是位置。

相关问题