在 Map 中§
有关方法列表,请参阅主要文档 上下文
multi method list(Map: --> List)
返回 Map 中所有键和值的一个 List
的 Pair
对象。
my = Map.new('a' => (2, 3), 'b' => 17);say .list; # OUTPUT: «(b => 17 a => (2 3))»
在 Match 中§
有关方法列表,请参阅主要文档 上下文
返回位置子匹配列表。
在 Failure 中§
有关方法列表,请参阅主要文档 上下文
multi method list(Failure:)
将失败标记为已处理并抛出调用者的 异常。
在 List 中§
有关例程列表,请参阅主要文档 上下文
multi list(+list)multi method list(List:)
该方法只返回调用者 self。子例程遵循 单参数规则:如果使用单个参数调用,该参数是非 项目化 Iterable
,则返回基于参数 迭代器 的 List
;否则只返回参数列表。
例如
my = (1, 2); # an itemized Listput .list.raku; # OUTPUT: «(1, 2)»put list().raku; # OUTPUT: «($(1, 2),)»put list(|).raku; # OUTPUT: «(1, 2)»
最后一条语句使用 prefix:<|>
运算符将元组展平为参数列表,因此等效于
put list(1, 2).raku; # OUTPUT: «(1, 2)»
还有其他方法可以列出项目化单个参数的元素。例如,你可以 去容器化 参数或使用 @
列表上下文化程序
put list(<>).raku; # OUTPUT: «(1, 2)»put list(@).raku; # OUTPUT: «(1, 2)»
请注意,将类型对象转换为列表可能不会达到你的预期
put List.list.raku; # OUTPUT: «(List,)»
这是因为接受类型对象作为调用者的 .list
候选是由 Any
提供的。该候选返回一个包含一个元素的列表:类型对象 self。如果你正在开发一个集合类型,其类型对象应为空集合的有效表示,则可能希望为未定义的调用者提供你自己的候选或使用“only”方法覆盖 Any:
候选。例如
mymy LinkedList ; # an empty linked listput .list.raku; # OUTPUT: «()»
在 Channel 中§
有关方法列表,请参阅主要文档 上下文
method list(Channel:)
返回一个基于 Seq
的列表,该列表将迭代队列中的项目并从队列中删除每个项目。只有在调用 close
方法后才能终止。
my = Channel.new; .send(1); .send(2);.close;say .list; # OUTPUT: «(1 2)»
In Supply§
有关方法列表,请参阅上下文中的主要文档
multi method list(Supply:)
点击调用它的Supply
,并返回一个惰性列表,该列表将随着Supply
发出值而具体化。一旦Supply
“完成”,该列表将终止。如果Supply
“退出”,则一旦达到惰性列表中的该点,就会抛出异常。
In Backtrace§
有关方法列表,请参阅上下文中的主要文档
multi method list(Backtrace:)
为此回溯返回一个Backtrace::Frame
对象列表。
In Any§
有关方法列表,请参阅上下文中的主要文档
multi method list(Any:)multi method list(Any \SELF:)
say 42.list.^name; # OUTPUT: «List»say 42.list.elems; # OUTPUT: «1»
Any
的子类可以选择返回任何从.list
中执行Positional
角色的核心类型。使用.List
专门强制转换为List
。
@
还可以用作列表或Positional
上下文化器
my = $[1,2,3];say .raku; # OUTPUT: «$[1, 2, 3]»my = @;say .^name; # OUTPUT: «Array»
在第一种情况下,列表是逐项的。@
作为前缀通过调用.list
将初始标量置于列表上下文中,并将其转换为Array
。
In Range§
有关方法列表,请参阅上下文中的主要文档
multi method list(Range:)
生成范围表示的元素列表。
say (1..5).list; # OUTPUT: «(1 2 3 4 5)»say (1^..^5).list; # OUTPUT: «(2 3 4)»
In role Buf§
有关方法列表,请参阅上下文中的主要文档
multi method list(Buf:)
返回一个List
整数。
say Buf.new(122,105,112,205).list; # OUTPUT: «(122 105 112 205)»
In role Blob§
有关方法列表,请参阅上下文中的主要文档
multi method list(Blob:)
返回一个List
整数
say "zipi".encode("ascii").list; # OUTPUT: «(122 105 112 105)»
In role PositionalBindFailover§
有关方法列表,请参阅上下文中的主要文档
multi method list(::?CLASS:)
基于iterator
方法返回一个List
,而不缓存它。
In Capture§
有关方法列表,请参阅上下文中的主要文档
method list(Capture:)
返回Capture
的位置部分。
my Capture = \(2, 3, 5, apples => (red => 2));say .list; # OUTPUT: «(2 3 5)»
In Uni§
有关方法列表,请参阅上下文中的主要文档
method list(Uni:)
返回一个Seq
整数代码点。
In role QuantHash§
请参阅 上下文中 的主要文档,了解方法列表
multi method list(QuantHash:)
返回 QuantHash 中所有键和值构成的 Pair
对象列表。