给定两个SetHash
es,其中一个或两个都可以为空。我想将第二个SetHash
的所有元素添加到第一个元素中。
由于union operator的输出是Set
,我设法做到的唯一(也可能不是最好的)方法如下:
my SetHash $s1 = <a b c>.SetHash;
my SetHash $s2 = <c d e>.SetHash;
$s1 = ($s1 (|) $s2).SetHash; # SetHash(a b c d e)
UPD:可能这更简单,但必须转换为.keys
会让我感到不舒服。
$s1{ $s2.keys } X= True; # SetHash(a b c d e)
答案 0 :(得分:3)
我希望Elizabeth Mattijsen能够阅读您的问题和答案,并发表评论或提供自己的答案。与此同时,这是我最好的镜头:
0
Elizabeth在Rakudo 2017.11编译器版本中为使用my %s1 is SetHash = <a b c> ;
my %s2 is SetHash = <c d e> ;
%s1 = |%s1, |%s2 ; # SetHash(a b c d e)
sigil声明的变量(即声明其主要性质为Associative
的变量)实现了is Set
(和cousins)功能。
前缀%
,用在一个参数列表的表达式中,&#34;展平&#34;如果所述单个参数是复合的,则为单个参数(relevant doc声明它必须是|
,Capture
,Pair
,List
或{{1} }):
Map