0
Rubyでqサイズがわからないときは、q[0].from(q[1].from(q[2].from(q[3])))
のようなメソッドを再帰的に呼び出す方法は?qのサイズが不明な場合、q [0] .from(q [1] .from(q [2] .from(q [3])))のようなメソッドを再帰的に呼び出す方法は?
Rubyでqサイズがわからないときは、q[0].from(q[1].from(q[2].from(q[3])))
のようなメソッドを再帰的に呼び出す方法は?qのサイズが不明な場合、q [0] .from(q [1] .from(q [2] .from(q [3])))のようなメソッドを再帰的に呼び出す方法は?
あなたはこのために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]))
そしてそうで
を算出します