如何解决类似方法语法中的 Raku 中缀运算符 松散相关的替代方案
在 Raku 中,中缀 运算符可以像函数一样使用,例如:
1 + 2 ; # 3
infix:<+>(1,2) ; # 3
[+] 1,2 ; # 3
前缀 运算符可与类似方法 的语法 (methodop) 一起使用:
-1 ; # -1
1.:<-> ; # -1
所以,(相当学术的)问题是,中缀 运算符是否也可以以类似 method 的方式使用,例如 1.:<+>(2)
(这是错误的)?
松散相关的替代方案
咖喱
(1 + *)(2) ; # 3
……那是函数(某种)定义和调用,不是方法调用,也不是类似方法的语法。
自定义方法
my method plus(Int $b --> Int){
return self + $b;
}
1.&plus(2) ; # 3
...但是不能使用 +
名称,这也不是没有附加函数定义的直接操作符用法。
解决方法
你可以使用
1.&infix:<+>(2)
1.&[+](2)
1.&(*+*)(2)
1.&{$^a +$^b}(2)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。