def next_prime_number (last_known_prime)
while true
last_known_prime++
found_factor = false # ERROR
for i in 1...last_known_prime
if last_known_prime % i == 0
found_factor = true
break
end
end
if !found_factor
puts "new prime: #{last_known_prime}"
Kernel.exit
end
end
end
in `next_prime_number': undefined method `+@' for false:FalseClass (NoMethodError)
我收到上述错误并且完全被难住了。任何想法(不,这不是家庭作业,我正在尝试通过 Euler 项目自学 Ruby)。
正如mikej所说,没有后增量(++
) 红宝石中的运算符。然而,有一元加号(拼写为+@
定义时)
last_known_prime++
found_factor = false
被解析为类似的东西
last_known_prime + (+(found_factor = false))
--------------------^ unary plus on false
这导致了你的神秘错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)