为了在Ruby中计算笛卡尔积,可以使用Array#product
,如果我有一个数组数组并想要计算产品,语法是怎样的?
[[1,2],[3,4],[5,6]] => [[1,3,5], [2,3,5], ...]
我不确定,因为在Ruby文档中,product
方法定义了任意数量的参数,所以只需将我的数组数组作为参数传递,如下所示:
[].product(as) => [
不够。我该如何解决这个问题?
答案 0 :(得分:6)
该方法采用多个参数,但不包含包含参数的数组。所以你必须以这种方式使用它:
[1,2].product [3,4], [5,6]
如果as
是您的数组数组,则必须像这样“splat”它:
as[0].product(*as[1..-1])
答案 1 :(得分:0)
我得到的最接近的符号是:
:product.to_proc.call(*as)
# shorthand
:product.to_proc.(*as)