Я действительно начинаю в рубине, пытаясь написать простую программу для обнаружения ввода в верхнем регистре. Теперь я использую ruby-1.9.3-p125. Таким образом, я пытаюсь скомпилировать это:Неопределенный метод `upcase 'для nil: NilClass (NoMethodError) - Ruby 1.9.3
# coding: utf-8
puts 'hello! enter something:'
while req!=req.upcase
req=gets.chomp
if req == req.upcase
puts "This is UpperCase!"
else
puts "Not UpperCase :(Try again!"
end
end
puts "GoodBye!"
И я получаю такую ошибку:
app1.rb:4:in `<main>': undefined method `upcase' for nil:NilClass (NoMethodError)
Может быть, я должен включать в себя любую библиотеку или чего-л, как это? BTW, «UpCase» .upcase` работает хорошо.
Ну, это сработало для меня, спасибо! Но в строке «while req = gets» мы по-прежнему отказываемся от «req» без специального определения этого var. Это нормально? Может быть, мы должны определить этот var перед использованием в цикле while? – f1nn
@IlyaRusanen ruby не требует определения переменных. Это делает их в первый раз, когда они их видят. – dbenhur