【发布时间】:2017-05-22 02:30:57
【问题描述】:
我在玩Map,结果我不明白。
首先,我构造了Map。没什么大不了的:
> my $m = Map.new: '1' => :1st, '2' => :2nd;
Map.new(("1" => :st(1),"2" => :nd(2)))
我通过文字键访问单个元素并返回一个 Pair:
> $m<1>.^name
Pair
> $m<<1>>.^name
Pair
没关系。
如果我尝试使用变量中的键,我会返回 List:
> my $n = 1
1
> $m<<$n>>.^name
List
该列表具有正确的值,但为什么在这种情况下我得到 List 而不是 $m<<1>> 情况?
而且,一旦我有了列表,我似乎无法将另一个下标链接到它:
> $m<<$n>>.[0]
===SORRY!=== Error while compiling:
Unable to parse quote-words subscript; couldn't find right double-angle quote
at line 2
【问题讨论】:
-
另一个((不)相关的?)不一致:
say <<1>>.^name # IntStrvsmy $n = 1; say <<$n>>.^name # Slipvssay <<1 2>>.^name # List -
在考虑了这个问题并与向我展示问题的人交谈后,我认为
$m<<1>>也应该返回一个列表。那么事情就说得通了。如果它是一个 IntStr 的列表,那很好。
标签: raku