请帮助我,我试图执行此方法时得到NoMethodError
def traspuesta()
i=0
aux=nil
for i in 0..@lt.length do
aux = @lt[i][0]
@lt[i][0] = @lt[i][1]
@lt[i][1] = aux
end
end
完整的错误说明了这一点:
Undefined method '[]' for nil:NilClass <NoMethodError>
from MDListaTrip.rb:83:in 'each'
from MDListaTrip.rb:83:in 'traspuesta'
from MDListaTrip.rb:111:in '<main>'
答案 0 :(得分:0)
使用
for i in 0...@lt.length
或
for i in 0..@lt.length-1
答案 1 :(得分:0)
原因是您使用0..@lt.length
范围,但必须使用0..@lt.length-1
。因此,你的最后一项是零。并且nil对象不响应[]
方法。这就是你收到错误的原因。
为了防止这种情况,您可以使用迭代器:
@lt.each do |item|
aux = item[0]
item[0] = item[1]
item[1] = aux
end