Ruby块的问题 [英] Problem with Ruby blocks
本文介绍了Ruby块的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
代码有什么问题?
def call_block(n)
if n==1
return 0
elsif n== 2
return 1
else
yield
return call_block(n-1) + call_block(n-2)
end
end
puts call_block(10) {puts "Take this"}
我正在尝试使用yield打印除第十斐波那契数字以外的其他数字.
I am trying to use yield to print Take this other than the tenth fibonacci number.
我遇到了错误: 在"call_block"中:未提供任何阻止(LocalJumpError)
I am getting the error: in `call_block': no block given (LocalJumpError)
即使以下代码也会引发错误:
Even the following code throws error:
def call_block(n)
if n==1
yield
return 0
elsif n== 2
yield
return 1
else
yield
return call_block(n-1) + call_block(n-2)
end
end
puts call_block(10) {puts "Take this"}
推荐答案
您可能想使用此行,如 Adam Vandenberg 提示:
You might want to use this line, as Adam Vandenberg hints:
return call_block(n-1) { yield } + call_block(n-2) { yield }
这篇关于Ruby块的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文