reduce方法中的:^是什么意思?

时间:2019-06-08 18:55:19

标签: ruby reduce

我在Code Wars上进行挑战,因为我获得了一个带有多个(有时是重复的)整数的“数字”数组,并且我必须返回一个唯一的整数。我克服了挑战,但是当我查看所有先前提交的解决方案时,我注意到了这种reduce方法:

def stray (numbers)
  numbers.reduce(&:^)
end

我知道reduce方法通常会做什么,但是我无法找到符号^的含义。有人可以让我知道它的目的吗?

1 个答案:

答案 0 :(得分:3)

reduce方法用于数组,以将该数组的所有元素组合为单个项目。

reduce方法接受一个起始值和一个代码块。

您正在使用的是reduce的简写版本,其含义如下:

numbers.reduce(&:^)

当&t字符用作方法调用或定义的最后一个参数时,它将尝试在参数本身上调用方法。 ^字符表示按位的XOR operator

注入也是Ruby中reduce的别名。

您可以阅读更多here