
142
|
第
6
章
6.6.2
交叉操作符
X
X
交叉操作符将一个
Positional
的每一个元素与另一个
Positional
的每一个元素
结合:
my @letters = <A B C>;
my @digits = 1, 2, 3;
my @crossed = @letters X @digits;
say @crossed;
输出显示每个字母分别与各个数字成对:
[(A 1) (A 2) (A 3) (B 1) (B 2) (B 3) (C 1) (C 2) (C 3)]
练习
6.13
一副扑克牌有
52
张牌,
4
种花色
♣♡♠♢
,每种花色分别有
13
张牌,
2~10
、
J
、
Q
、
K
和
A
。使用交叉操作符建立一个
List
的
List
,每个元素分别表示每张牌。
输出这个扑克牌列表,让同一花色的所有牌显示在同一行上。
6.6.3
超操作符
不是组合
Positional
,还可以处理
Positional
来创建结果的一个
List
。超操作符
(
hyperoperators
)可以做到这一点。用
<<>>
包围
+
操作符。这会把
@right
的第一
个元素与
@left
的第一个元素完成数值相加。相加的结果成为结果列表的第一个元素。
第二个元素也是这样,然后是第三个元素,依此类推:
my @right = 1, 2, 3;
my @left = 5, 9, 4;
say @left <<+>> @right; # [6 11 7]
可以选择一个不同的操作符,按照同样的过程处理。连接操作符会连接各个元素的
Str
版本:
my @right = 1, 2,