use*_*164 5 new-operator perl6 prefix-operator
我正在努力使¬成为一个逻辑否定运算符.
¬ True;
multi sub prefix:<¬> ($n) {
return not $n;
}
Run Code Online (Sandbox Code Playgroud)
当我运行上面的程序时,它返回此错误:
Run Code Online (Sandbox Code Playgroud)$ perl6 test.pl6 ===SORRY!=== Error while compiling /home/devXYZ/test.pl6 Bogus statement at /home/devXYZ/test.pl6:1 ------> <BOL>?¬ True; expecting any of: prefix term
有谁知道原因可能是什么?
新运算符的声明必须在使用之前出现.将程序更改为:
multi sub prefix:<¬> ($n) {
return not $n;
}
say ¬ True;
Run Code Online (Sandbox Code Playgroud)
使它工作正常.
Perl 6具有严格的一次通过解析规则.因此,顺序与影响被解析语言的任何事物有关 - 例如通过引入类型或新运算符.