-1
class Array
  def total_zeros index = entries.length-1, total = 0
    p "total entries = #{entries.length}"
    i = 0
    if index >= 0
      p "in if block"
      i = i+1
      total_zeros index-1, total
    end
    p "hello #{i}"
  end
end

a = [0,1,2]
p a.total_zeros

これは私のサンプル出力です:

"total entries = 3"
"in if block"
"total entries = 3"
"in if block"
"total entries = 3"
"in if block"
"total entries = 3"
"hello 0"
"hello 1"
"hello 1"
"hello 1"
nil

誰かこのコードを理解するのを手伝ってくれませんか? 最後の行「hello」が 4 回出力される理由がわかりません。これは再帰であり、「hello」はi4 に等しい 1 回だけ出力する必要があります。

4

1 に答える 1