【发布时间】:2016-01-25 16:39:35
【问题描述】:
我打算把它编辑成my other related question,但感觉已经很不一样了,我不想每个问题都问太多问题。
我的心……已经爆炸了。
考虑:
use strict;
my Int $n = 6;
my Str $x = "a";
my @l = $n, $x;
say @l ~~ List;
按预期打印True。
考虑一下:
use strict;
my Int $n = 6;
my Str $x = "a";
my List @l = $n, $x; # <-- only change is the type notation
say @l ~~ List;
死于:
Type check failed in assignment to @l; expected List but got Int
所以... List 的类型是 List,但我不能说它是 List,因为那是一种罪过!
这里发生了什么?这是一个错误吗?还是我将我不相关的 Python 和 Go 习语带到 Perl 并破坏了一些东西?
【问题讨论】:
-
@Hunter,你让漂亮的颜色消失了! (我用perl 标记它的原因是我可以突出显示语法,但如果你认为组织更重要,那么就足够公平了。)
-
显然 perl6 标签没有与之关联的默认语法高亮提示。我现在已经添加了 Perl 5 提示。我没有使用过 Perl 6,但我猜测语法足够接近,突出显示应该是相同的。也许我会在 Meta 上提出请求。
-
@ThisSuitIsBlackNot 实际上有很多新语法。根据我的经验,有时即使 vim 也很难处理。
-
@ChristopherBottoms 很高兴知道。差异是否足够明显,以至于 SO 上的突出显示始终是坏/错误? Google prettify 非常简单,有时会搞砸 Perl 5 的高亮显示,但对于大多数问题来说都很好,而且通常总比没有高亮显示要好。
-
@ThisSuitIsBlackNot 我认为 Meta 上的帖子是获得反馈的好主意,例如,我认为分离对于组织和让“正确”的人来查看问题都是有益的。对 Perl5 的了解并不意味着对 Perl6 有任何了解。如果用户对两种语言都感兴趣,可以同时订阅这两种语言。