我在Code Wars上进行挑战,因为我获得了一个带有多个(有时是重复的)整数的“数字”数组,并且我必须返回一个唯一的整数。我克服了挑战,但是当我查看所有先前提交的解决方案时,我注意到了这种reduce方法:
def stray (numbers)
numbers.reduce(&:^)
end
我知道reduce方法通常会做什么,但是我无法找到符号^的含义。有人可以让我知道它的目的吗?
答案 0 :(得分:3)
reduce方法用于数组,以将该数组的所有元素组合为单个项目。
reduce方法接受一个起始值和一个代码块。
您正在使用的是reduce的简写版本,其含义如下:
numbers.reduce(&:^)
当&t字符用作方法调用或定义的最后一个参数时,它将尝试在参数本身上调用方法。 ^字符表示按位的XOR operator。
注入也是Ruby中reduce的别名。
您可以阅读更多here。