【发布时间】:2018-10-13 20:42:08
【问题描述】:
我们可以使用total 方法来知道Bag 中所有权重的总和。
> my $b = (1,2,1).Bag
Bag(1(2), 2)
> $b.total
3
但是如果我们使用% sigil 而不是$ 来表示Bag,我们会收到一条错误消息。
> my %b = (1,2,1).Bag
{1 => 2, 2 => 1}
> %b.total
No such method 'total' for invocant of type 'Hash'. Did you mean 'cotan'?
in block <unit> at <unknown file> line 1
如果在total 之前将%b 显式转换为Bag,则可以:
> %b.Bag.total
3
问题:我曾经认为对于Set、Bag、SetHash 等,使用% 印记更可取。我错了吗?
【问题讨论】: