如何以递归方式调用以下方法:q[0].from(q[1].from(q[2].from(q[3])))
在q大小未知的情况下在Ruby中?
答案 0 :(得分:0)
您可以使用inject
:
q.reverse_each.inject do |acc, value|
value.from(acc)
end
需要采取相反的措施才能使事情顺利进行。第一次调用块时acc
是q
中的最后一个元素,在您的示例中为q[3]
,值为q[2]
。在下一次迭代中,值为q[1]
,acc
是前一个块(q[2].from(q[3])
)的结果,因此计算
q[1].from(q[2].from(q[3]))
等等