为了在 Ruby 中计算笛卡尔积,可以使用Array#product
, 如果我有一个数组数组并且想要计算乘积,语法如何?
[[1,2],[3,4],[5,6]] => [[1,3,5], [2,3,5], ...]
我不确定,因为在 Ruby 文档中,该product
方法是用任意数量的参数定义的,所以只需将我的数组数组作为参数传递,就像这样:
[].product(as) => [
还不够。我该如何解决这个问题?
The method takes multiple arguments, but not an array containing arguments. So you have to use it in this way:
[1,2].product [3,4], [5,6]
If as
is your array of arrays, you will have to "splat" it like this:
as[0].product(*as[1..-1])
我得到的最接近的符号是:
:product.to_proc.call(*as)
# shorthand
:product.to_proc.(*as)
:product.to_proc[*as]