10

在 Raku 中,中运算符可以像函数一样使用,例如:

1 + 2 ;           # 3
infix:<+>(1, 2) ; # 3
[+] 1, 2 ;        # 3

前缀运算符可以与类似方法的语法(methodop)一起使用:

-1 ;             # -1
1.:<-> ;         # -1

所以,(相当学术的)问题是,中运算符也可以以类似方法的方式使用,比如1.:<+>(2)(这是错误的)吗?

咖喱

(1 + *)(2) ;     # 3

…那是函数(某种)定义和调用,不是方法调用,也不是类似方法的语法。

自定义方法

my method plus(Int $b --> Int){
  return self + $b;
}

1.&plus(2) ;     # 3

…但是+不能使用名称,这也不是没有附加函数定义的直接运算符用法。

4

1 回答 1

13

您可以使用

1.&infix:<+>(2)
1.&[+](2)

1.&(*+*)(2)
1.&{$^a +$^b}(2)
于 2021-07-15T19:04:49.833 回答