当我尝试迭代对象数组时,我收到一条非常奇怪的错误消息。错误是
NoMethodError (undefined method `+@' for []:Array):
这是该循环的代码。
#go through items and see if there are any corresponding offers
#All matches are stored in a hash
items.each do |itemsi|
bestoffer = -1
matchescounter++ #matchescounter only get incredmented when all the offers have been taken care of
offers.each do |offs|
if itemsi.togive.to_str == offs.totake.to_str
if offs.togive.to_int > bestoffer
bestoffer = offs.togive.to_int
matches[matchescounter].store(itemi, offer)
end#if
end#if
end#offers loop
end#items loop
我的代码中没有+ @。奇怪
答案 0 :(得分:11)
Ruby中没有++运算符。
错误信息实际上非常清楚:它表示您的Array类型实例不存在名为“+ @”的方法。 '+ @'是一元加实例方法的实际名称,该方法是为数字类型定义的,但不是为数组定义的。
答案 1 :(得分:0)
我今天遇到了类似的错误。
NoMethodError (undefinded method `-@' for []:Array)
我已将HAML文档中的%w
数组声明复制粘贴到ruby控制台中以验证其格式,但没有注意到我在开始时就包含了-
。
答案 2 :(得分:0)
在添加2个数组时放置=+
而不是+=
时出现此错误