[英]Ruby undefined method `+' for nil:NilClass
我是 ruby 的完全初學者,但我無法擺脫這個問題,我在運行代碼時得到這些,直到最后一切都運行良好:
輸入文本:一切正常,直到
輸入字幕:ll
文本:一切正常,直到 SUBTEXT:ll
輸出:4 15
未定義的方法+' for nil:NilClass (repl):18:in
initialize'
puts "\nINPUT TEXT:"
@text = gets.chomp
puts "\nINPUT SUBTEXT:"
@subtext = gets.chomp
puts "\nTEXT: " + @text
puts "SUBTEXT: " + @subtext
puts "\n"
i = @text.index (@subtext)
puts "OUTPUT:"
while i != -1
puts i.to_s + ' '
i = @text.index @subtext, i+1
end
在 Ruby 中,當未找到子字符串時, String#index
不會返回 -1; 它返回nil
。 將條件從while i != -1
更改為while i
。 (這是可行的,因為與其他一些語言不同,Ruby 認為值 0 為真;只有false
和nil
為假。)
如果子字符串不存在,索引返回 nil。 所以這應該可以解決這個問題
@text = gets.chomp
puts "\nINPUT SUBTEXT:"
@subtext = gets.chomp
puts "\nTEXT: " + @text
puts "SUBTEXT: " + @subtext
puts "\n"
i = @text.index (@subtext)
puts "OUTPUT:"
while i
puts i.to_s + ' '
i = @text.index @subtext, i+1
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.