可以't使>>Raku的操作员



我正试图重载>gt;像这样的操作员:

class A {}
multi sub infix:«>>»(A:D $a, Str() $b) is assoc<non> { dd $a; dd $b }
my $x = A.new;
$x >> 'output.txt';

但我在第5行收到一个编译错误,上面写着:

Unsupported use of >> to do right shift.  In Raku please use: +> or ~>.

我错过了什么?

这是一个Rakudo的编译器(有点(过于聪明的例子。因为Raku中有不同类型的移位操作,而且都不使用双箭头,所以Rakudo使用的语法设置了>>,以触发对习惯其他语言的人的警报。我想当时没有人认为有人会制作>>运算符,这是有意义的,因为>>或多或少暗示着可能存在<<,如果它用作引用环和元运算符,它可能会造成各种破坏。

你可以在这里看到代码和语法:https://github.com/rakudo/rakudo/blob/9d6d8dd7a72aed698e30b6fe4b8eea62642c62c6/src/Perl6/Grammar.nqp#L4104

相关内容

  • 没有找到相关文章

最新更新