In 运算符§
有关 infix ^^ 的主要文档,请参阅上下文
短路异或。如果存在(且仅存在)一个真参数,则返回该参数。如果所有参数都为假,则返回最后一个参数。当多个参数为真时,返回 Nil
。
此运算符在找到第二个真结果后不会评估任何参数,因此被称为“短路”。
say 0 ^^ 42; # OUTPUT: «42»say '' ^^ 0; # OUTPUT: «0»say 0 ^^ 42 ^^ 1 ^^ die "never called"; # OUTPUT: «Nil»
请注意,此运算符的语义可能与您假设的不同:infix ^^
会翻转到它找到的第一个真值,然后在第二个真值之后_永远_翻转到 Nil,无论有多少个真值。(换句话说,它具有“找到一个真值”的语义,而不是“布尔奇偶校验”的语义。)