【问题标题】:Is it possible to define a new operator in Raku and control its precedence?是否可以在 Raku 中定义一个新的运算符并控制其优先级?
【发布时间】:2020-10-13 17:54:08
【问题描述】:

考虑这个新的运算符:

sub infix:<*++>(\num1, \num2) {
    num1 * num2 + 1
}

say (2 + 1 *++ 3);

此代码打印:

10

但是,是否可以控制优先级?它的行为是这样的:

say (2 + (1 *++ 3))

无需使用括号

【问题讨论】:

    标签: operators operator-precedence raku rakudo


    【解决方案1】:

    is tighter 是可能的

    sub infix:<*++> (\num1, \num2) is tighter(&[+])  {
          num1 * num2 + 1
    }
    

    【讨论】:

    • is equivis looser。也许is equiv(&amp;[*])在这里最合适。
    • 是的,我最终使用 is equiv :)。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2016-02-19
    • 2014-03-25
    • 1970-01-01
    • 2015-12-16
    相关资源
    最近更新 更多