ruby - :^ in reduce method mean? 是什么

标签 ruby reduce

我在 Code Wars 上做一个挑战,我得到了一个包含多个(有时是重复的)整数的数组“数字”,我必须返回一个唯一的整数。我通过了挑战,但是当我查看之前提交的所有解决方案时,我注意到了这个 reduce 方法:

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

我知道 reduce 方法通常做什么,但我一直没能找到符号 ^ 的意思。谁能告诉我它的用途?

最佳答案

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

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

您使用的是 reduce 的简写版本,意思如下:

numbers.reduce(&:^)

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

Inject 也是 Ruby 中 reduce 的别名。

您可以阅读更多 here .

关于ruby - :^ in reduce method mean? 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56509288/

相关文章:

ruby-on-rails - 如何从 rails_admin 中删除图像?

ruby-on-rails - 如何在 Openstruct 对象上使用 "each"?

recursion - 为什么 reduce 会在 Clojure 中给出 StackOverflowError?

python - 具有三个参数的 Reduce 函数

Elixir 减少元素的顺序

ruby-on-rails - 数组参数上的 rspec 匹配器类似于 hash_including

ruby-on-rails - Ruby 哪里有 find_each

python - 在 Python 中读取结构二进制数据?

python - 在带有 reduce() 的 lambda 函数中使用 math.factorial

r - f(init, x[[i]]) 中的错误 : unused argument (x[[i]])