脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

リカーシブ(recursive)メソッド

メソッドの中でそのメソッドを再度呼び出す方法をリカーシブと言います。

foo = 0

def test_recursive(bar)
  puts 'enter [test_recursive]'
  bar += 1
  if bar == 10
    puts 'return!!'
    return bar
  end
  final_bar = test_recursive(bar)
  puts 'end of method'
  return final_bar
end

res = test_recursive(foo)

puts res


実行結果

enter [test_recursive]
enter [test_recursive]
enter [test_recursive]
enter [test_recursive]
enter [test_recursive]
enter [test_recursive]
enter [test_recursive]
enter [test_recursive]
enter [test_recursive]
enter [test_recursive]
return!!
end of method
end of method
end of method
end of method
end of method
end of method
end of method
end of method
end of method
10