Perl6字符串强制运算符?不喜欢前导零
发布时间:2020-12-15 21:42:43 所属栏目:大数据 来源:网络整理
导读:我正在玩Rakudo Star 2015.09. 如果我尝试将前导零的整数字符串化,编译器会发出警告: say (~01234).WHATPotential difficulties: Leading 0 does not indicate octal in Perl 6. Please use 0o123 if you mean that. at unknown file:1 ------ say (~0123HE
我正在玩Rakudo Star 2015.09.
如果我尝试将前导零的整数字符串化,编译器会发出警告: > say (~01234).WHAT Potential difficulties: Leading 0 does not indicate octal in Perl 6. Please use 0o123 if you mean that. at <unknown file>:1 ------> say (~0123<HERE>).WHAT (Str) 我想也许我可以通过将整数值赋给变量来帮助编译器,但获得了相同的结果: > my $x = 01234; say (~$x).WHAT Potential difficulties: Leading 0 does not indicate octal in Perl 6. Please use 0o1234 if you mean that. at <unknown file>:1 ------> my $x = 01234<HERE>; say (~$x).WHAT (Str) 我知道这是一个愚蠢的例子,但这是设计的吗?如果是这样,为什么? 我怎么能抑制这种警告信息呢? 解决方法
您有数据带有前导零的原因吗?当我有一列邮政编码时,我倾向于遇到这个问题.
当他们第一次考虑Perl 6时,其中一个目标是清理一些一致性问题.我们有0x和0b(我认为到那个时候),但是Perl 5仍然需要寻找前导0来猜测它将是八进制.见Radix Markers in Synopsis 2. 但是,Perl 6还必须关注Perl 5程序员将尝试做什么以及他们期望什么.大多数人都期望领先0代表八进制.但是,这并不意味着八进制.这是你键入文字,而不是你如何使用它. Perl 6有很多关于Perl 5人试图使用的东西的警告,比如foreach: $perl6 -e 'foreach @*ARGS -> $arg { say $arg }' 1 2 3 ===SORRY!=== Error while compiling -e Unsupported use of 'foreach'; in Perl 6 please use 'for' at -e:1 ------> foreach? @*ARGS -> $arg { say $arg } 为了抑制那种警告,不要做它警告你的事情.该语言不希望你这样做.如果您需要一个字符串,请以字符串’01234’开头.或者,如果您希望它是八进制,请从0开始.但是,要意识到字符串化将使您返回十进制表示: $perl6 -e 'say ~0o1234' 668 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |