如果我将==更改为>我在ruby中收到以下错误在比较中:
nano:jc] ruby ItemController.rb
file read: snippets.txt
ItemController.rb:23:in `read': undefined method `>' for nil:NilClass (NoMethodError)
from ItemController.rb:19:in `open'
from ItemController.rb:19:in `read'
from ItemController.rb:58
以下是导致投诉的方法定义。见行
if line.index("<item>") > -1
用
if line.index("<item>") == 0
它有效。失败&gt; 0也。
Yuuk!
def read
@item_count = 0
File.open(@file_name, 'r') do |f1|
while line=f1.gets
@line.concat([line])
if line.index("<item>") > -1
puts "begin"
@item_count = @item_count + 1
end
if line.index("</item>") == 0
puts "end\n"
end
# puts line
end # while
end # do
end # def
答案 0 :(得分:5)
您的line.index("<item>")
评估为nil
。 Nil有==
方法,但没有>
。所以根本原因是有一个nil
,你没有预料到它。