相关疑难解决方法(0)

一类的重载运算符

假设我有以下课程:

class A {
    has $.val;

    method Str { $!val ~ 'µ'  }  
}

# Is this the right way of doing it?
multi infix:<~>(A:D $lhs, A:D $rhs) {
    ('(', $lhs.val, ',', $rhs.val, ')', 'µ').join;
}
Run Code Online (Sandbox Code Playgroud)

如何以与上一类+相同的方式重载某个类的运算符(例如)Str

我猜这仅适用于在实例对象上调用的方法,并且multi operator-type:<OP>(T $lhs, T $rhs) { }对运算符使用语法是正确的解决方法,但我不确定。

例如,在Python中,以运算符(例如operator.__add__)和运算符(例如+)命名的特殊方法之间似乎存在对应关系。此外,自定义类的任何运算符重载都在该类内部完成。

operator-overloading perl6 raku

12
推荐指数
2
解决办法
99
查看次数

标签 统计

operator-overloading ×1

perl6 ×1

raku ×1