【发布时间】:2014-05-20 10:37:04
【问题描述】:
我正在尝试读取包含一些数字的文件。然后我想将它们转换为整数。当我像下面这样尝试时,没关系。
input = IO.readlines(filename)
size = input[0].split(/\s/).map(&:to_i)
但是,当我像下面这样尝试时,它给了我这个错误。
input = IO.readlines(filename)
lnth = input.length
i=0
while i<=lnth
size = input[i].split(/\s/).map(&:to_i)
i=i+1
end
nil:NilClass (NoMethodError) 的未定义方法 `split'
我现在如何解决这个错误?
【问题讨论】:
-
您最终得到
i == input.length,但input[input.length]不存在(它是nil),因此出现错误。试试while i < lnth,虽然你可以做input.each。 -
@DaniëlKnippers 完美答案(也是第一个),为什么要评论?发布作为答案。
-
@DaniëlKnippers 非常感谢。有用。 :D
-
@ArupRakshit 我想你是对的,我通常将 cmets 发布到诸如索引越界之类的小错误,但我想我应该回答:) 获得声誉感觉有点傻将
<=更改为<并进行解释。 -
@DaniëlKnippers 它的开发者网站,所以值得获得一些代表,同时你正在清除其他开发者的痛苦.. 即使它是最小的。因为有时要修复这些错误需要更多时间。所以您节省了时间...