在阅读有关Perl 6的内容时,我看到一个被大肆宣扬的功能,您不再需要这样做:
return "0 but true";
Run Code Online (Sandbox Code Playgroud)
...但可以改为:
return 0 but True;
Run Code Online (Sandbox Code Playgroud)
如果是这样的话,Perl 6中的真相如何运作?在Perl 5中,它很简单:0,""和undef都是假的,其他一切都是真的.
在布尔上下文中,Perl 6中有哪些规则?
我正在尝试找出上述例程之间的区别以及if语句是否像
say $y.Bool;
say $y.so;
say ? $y;
say so $y;
Run Code Online (Sandbox Code Playgroud)
会产生不同的结果。
到目前为止,对我而言,唯一明显的区别是?优先级高于so。.Bool而.so似乎是完全同义。这是正确的,(实际上)是完整的故事吗?
% raku\nWelcome to Rakudo\xe2\x84\xa2 v2023.08.\nImplementing the Raku\xc2\xae Programming Language v6.d.\nBuilt on MoarVM version 2023.08.\n\nTo exit type 'exit' or '^D'\n[0] > say so 1..0;\nTrue\nRun Code Online (Sandbox Code Playgroud)\nRange如果空值是False,但任何范围都是,这将很有用True。\n这是一个错误还是一个功能?