Ruby 当我运行此命令时,总和中有一个错误+=n语句,我不';我不知道如何修理它
错误:Ruby 当我运行此命令时,总和中有一个错误+=n语句,我不';我不知道如何修理它,ruby,Ruby,错误: class Test def multiples (1..1000).each do |n| if n % 3 == 0 || n % 5 == 0 sum += n end puts "The sum of multiples of 3 or 5 below 1000 is #{sum}" end end end test = Test.new test.multiples test.rb:9:in`bloc
class Test
def multiples
(1..1000).each do |n|
if n % 3 == 0 || n % 5 == 0
sum += n
end
puts "The sum of multiples of 3 or 5 below 1000 is #{sum}"
end
end
end
test = Test.new
test.multiples
test.rb:9:in`block in multiples':nil:NilClass(nomethoderor)的未定义方法“+”
1000以下3或5的倍数之和为
来自测试。rb:7:in'each'
来自test.rb:7:in‘倍数’
来自测试。rb:19:in`'
from-e:1:in“load”
from-e:1:in`'
您尚未初始化sum,添加sum=0应可解决此问题:
test.rb:9:in `block in multiples': undefined method `+' for nil:NilClass (NoMethodError)
The sum of multiples of 3 or 5 below 1000 is
from test.rb:7:in `each'
from test.rb:7:in `multiples'
from test.rb:19:in `<top (required)>'
from -e:1:in `load'
from -e:1:in `<main>'
您尚未初始化sum,将sum=0相加应可解决此问题:
test.rb:9:in `block in multiples': undefined method `+' for nil:NilClass (NoMethodError)
The sum of multiples of 3 or 5 below 1000 is
from test.rb:7:in `each'
from test.rb:7:in `multiples'
from test.rb:19:in `<top (required)>'
from -e:1:in `load'
from -e:1:in `<main>'
我记得当我开始使用Ruby时,我并没有太多地观察错误消息,但您可能会发现学习如何阅读这些消息的价值。你有:
class Test
def multiples
sum = 0
(1..1000).each do |n|
if n % 3 == 0 || n % 5 == 0
sum += n
end
puts "The sum of multiples of 3 or 5 below 1000 is #{sum}"
end
end
end
test = Test.new
test.multiples
这里只是简单地剖析一下显而易见的问题。您将获得以下部分:
sum
当前nil
?”,然后环顾您的代码,发现您从未声明过它。Ruby不知道如何向nil
添加内容,因此您应该立即考虑在循环之外的某个地方实例化/声明变量“sum”,即它正在向自身添加内容
希望理解错误消息和出错原因能有所帮助。因为如果你不理解并思考错误信息,你会再次遇到障碍。这可能与您尝试通过向数组中铲入某些内容而不是首先实例化它来创建数组的时间大致相同,您想知道为什么会收到类似的错误消息
希望这有帮助 我记得当我开始使用Ruby时,我并没有太多地观察错误消息,但您可能会发现学习如何阅读这些消息的价值。你有:
class Test
def multiples
sum = 0
(1..1000).each do |n|
if n % 3 == 0 || n % 5 == 0
sum += n
end
puts "The sum of multiples of 3 or 5 below 1000 is #{sum}"
end
end
end
test = Test.new
test.multiples
这里只是简单地剖析一下显而易见的问题。您将获得以下部分:
sum
当前nil
?”,然后环顾您的代码,发现您从未声明过它。Ruby不知道如何向nil
添加内容,因此您应该立即考虑在循环之外的某个地方实例化/声明变量“sum”,即它正在向自身添加内容
希望理解错误消息和出错原因能有所帮助。因为如果你不理解并思考错误信息,你会再次遇到障碍。这可能与您尝试通过向数组中铲入某些内容而不是首先实例化它来创建数组的时间大致相同,您想知道为什么会收到类似的错误消息
希望这有帮助 @Marc如果Yule的答案解决了你的问题,你对此感到满意,请投票并接受答案,thanks@Marc如果Yule的答案解决了您的问题,并且您对此感到满意,请投票并接受答案,谢谢Hanks~我想我不太明白Ruby中的工作原理。谢谢你提到+是一种方法,我以前没有注意到。这是一个很好的回答谢谢~我想我不太理解Ruby中的工作原理。感谢您提到+是一种方法,我以前没有注意到。这是一个精彩的答案