【发布时间】:2013-07-23 02:42:30
【问题描述】:
这段 Ruby 2.0 代码有什么问题?
p (1..8).collect{|denom|
(1...denom).collect{|num|
r = Rational(num, denom)
if r > Rational(1, 3) and r < Rational(1, 2)
return 1
else
return 0
end
}
}.flatten
错误在block (2 levels) in <main>': unexpected return (LocalJumpError)。我想创建一个包含 n 个(以及其余的零)的平面列表,其中 n 是分母低于 8 且介于 1/3 和 1 之间的有理数的数量/2。 (it's a Project Euler problem)。所以我试图从内部块返回。
【问题讨论】:
-
不要在块中使用
return。只需删除两个return,您的代码就可以了。