簡體   English   中英

Ruby 未定義方法“+”為 nil:NilClass

[英]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 為真;只有falsenil為假。)

如果子字符串不存在,索引返回 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM