-1

当我尝试更改数组项时,我收到关于没有 + 方法的错误?请帮忙。

nameChar = [ '_','a','b','c','d','e','f','g','h','i','j','k','l','m','n',
    'o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9' ]
name = File.open('read.txt', &:readline)
rname = name.split('')
ref =  []
newRef = []
bump = 0
rname.each do |let|
    ref << nameChar.index(let)
end
puts ref
ref[0] += 1
ref.each do |numb|
    numb = numb + bump 
    if numb > 36
        bump = 1
        numb = 0
    else
        bump = 0
    end
    newRef << numb
end

错误消息是:new.rb:13:in 'block in': undefined method `+' for nil:NilClass (NoMethodError)


以下部分是可疑的:

rname.each do |let|
    ref << nameChar.index(let)
end
puts ref
ref[0] += 1
ref.each do |numb|
  numb = numb + bump 

nameChar.index(let)任何时候发现一些不在您的数组中的字符nameChar。因此在位置或数组内的任何位置ref都有nil值。因为Array#index(ob)如果未找到,则返回。现在没有方法,因此您得到合法错误。用于查看它包含的内容,并在您的代码中进行更正。ref[0]refnilobjNilClass+p ref

4

1 回答 1

0

以下部分是可疑的:

rname.each do |let|
    ref << nameChar.index(let)
end
puts ref
ref[0] += 1
ref.each do |numb|
  numb = numb + bump 

nameChar.index(let)任何时候发现一些不在您的数组中的字符nameChar。因此在位置或数组内的任何位置ref都有nil值。因为Array#index(ob)如果未找到,则返回。现在没有方法,因此您得到合法错误。用于查看它包含的内容,并在您的代码中进行更正。ref[0]refnilobjNilClass+p ref

于 2013-07-26T20:49:30.327 回答