在 Array 中§

有关方法 elems的更多信息,请参阅主要文档 in context

method elems(Array:D: --> Int:D)

返回调用者中的元素数量。如果调用者is lazy,则抛出X::Cannot::Lazy异常。对于定形数组,返回外部维度;如果您需要所有维度的信息,请参阅shape

say [<foo bar ber>.elems# OUTPUT: «3␤» 
say (my @a[42;3;70]).elems# OUTPUT: «42␤» 
 
try [-∞...∞].elems;
say $!.^name;               # OUTPUT: «X::Cannot::Lazy␤»

在 Metamodel::EnumHOW 中§

有关方法 elems的更多信息,请参阅主要文档 in context

method elems($obj)

返回值的数量。

enum Numbers <10 20>;
say Numbers.^elems;                         # OUTPUT: 2

在 Map 中§

有关方法 elems的更多信息,请参阅主要文档 in context

method elems(Map:D: --> Int:D)

返回存储在 Map 中的键值对数量。

my %map = Map.new('a'1'b'2);
say %map.elems# OUTPUT: «2␤»

在 List 中§

有关例程 elems的更多信息,请参阅主要文档 in context

sub    elems($list --> Int:D)
method elems(List:D: --> Int:D)

返回列表中的元素数量。

say (1,2,3,4).elems# OUTPUT: «4␤»

在 Supply 中§

有关方法 elems的更多信息,请参阅主要文档 in context

method elems(Supply:D: $seconds? --> Supply:D)

创建一个新的供应,其中对所见值数量的更改会被发出。如果您只想每隔几秒更新一次,它还可以选择一个间隔(以秒为单位)。

在 Any 中§

有关方法 elems的更多信息,请参阅主要文档 in context

multi method elems(Any:U: --> 1)
multi method elems(Any:D:)

将调用者解释为列表,并返回列表中的元素数量。

say 42.elems;                   # OUTPUT: «1␤» 
say <a b c>.elems;              # OUTPUT: «3␤» 
say Whatever.elems ;            # OUTPUT: «1␤»

它还将为类返回 1。

在角色 Setty 中§

有关方法 elems的更多信息,请参阅主要文档 in context

method elems(Setty:D: --> Int)

集合的元素数量。

在角色 Baggy 中§

有关方法 elems的更多信息,请参阅主要文档 in context

method elems(Baggy:D: --> Int:D)

返回Baggy对象中元素的数量,而不考虑各个元素的权重。

my $breakfast = bag <eggs spam spam spam>;
say $breakfast.elems;                             # OUTPUT: «2␤» 
 
my $n = ("b" => 9.4"b" => 2).MixHash;
say $n.elems;                                     # OUTPUT: «1␤»

在 Range 中§

有关方法 elems的更多信息,请参阅主要文档 in context

method elems(Range:D: --> Numeric:D)

返回范围内的元素数量,例如,当进行迭代或用作 List 时。如果起始点大于结束点(包括将起始点指定为 的情况),则返回 0。当 Range 为惰性时(包括将结束点指定为 或将任一端点指定为 * 时),将失败。

say (1..5).elems;                                 # OUTPUT: «5␤» 
say (1^..^5).elems;                               # OUTPUT: «3␤»

在 Blob 角色中§

有关 方法 elems 的主要文档,请 在上下文中 查看

multi method elems(Blob:D:)

返回缓冲区的元素数量。

my $blob = Blob.new([123]);
say $blob.elems# OUTPUT: «3␤»

在 Seq 中§

有关 方法 elems 的主要文档,请 在上下文中 查看

method elems(Seq:D:)

返回序列中的值数量。如果无法预测此数量,则会缓存并评估 Seq 直到结束。

由于无法评估无限序列直到结束,因此 应该 将此类序列声明为惰性。对惰性 Seq 调用 .elemsfail 并显示 X::Cannot::Lazy

在 Capture 中§

有关 方法 elems 的主要文档,请 在上下文中 查看

method elems(Capture:D: --> Int:D)

返回 Capture 中的位置元素数量。

my Capture $c = \(235apples => (red => 2));
say $c.elems# OUTPUT: «3␤»

在 Uni 中§

有关 方法 elems 的主要文档,请 在上下文中 查看

method elems(Uni:D: --> Int:D)

返回调用者中的代码点数量。

在 Positional 角色中§

有关 方法 elems 的主要文档,请 在上下文中 查看

method elems()

应返回实例化对象中可用元素的数量。

在 Subscripts 中§

有关 方法 elems 的主要文档,请 在上下文中 查看

multi method elems(::?CLASS:D:)

预期返回一个数字,表示对象中有多少可订阅元素。用户可以直接调用,并且当从末尾对元素进行索引(如 @foo[*-1])时,postcircumfix [ ] 也会调用。

如果没有实现,您的类型将从 Any 继承默认实现,该实现始终为已定义的调用者返回 1 - 这很可能不是您想要的。因此,如果无法知道位置类型中的元素数量,请添加一个 faildie 的实现,以避免在不知不觉中做错事。

在 IterationBuffer 中§

有关 方法 elems 的主要文档,请 在上下文中 查看

method elems(IterationBuffer:D: --> Int:D)

返回 IterationBuffer 中的元素数量。