Создание метода в классе и использование его в Ruby - PullRequest
0 голосов
/ 09 октября 2010

, поэтому я пытаюсь написать простую программу таймера на ruby. Я определил свои методы в классе «Таймер», но когда я их вызываю, он дает мне NoMethodError. Есть идеи почему? Спасибо за помощь.

require "Time"
class Timer

 def start
  $a = Time.now

 end

def stop
Time.now - $a
end

end

puts "Type in 'Start'to to start the timer and then type 'Stop' to stop it"
s = gets.start
st = gets.stop
puts st

Ответы [ 2 ]

1 голос
/ 09 октября 2010

Вы отправляете start и stop на возвращаемое значение gets, которое является строкой, а не таймером.

Кроме того, вы должны использовать переменные экземпляра, а не глобальные переменные для хранения значения таймера. Вам также нужно будет создать экземпляр Timer (или превратить Timer в модуль, но даже тогда использовать переменную экземпляра, а не глобальную).

0 голосов
/ 09 октября 2010

Похоже, вы не инициализируете объект класса.Так что либо вам нужен метод инициализации, либо вы можете ссылаться на класс в методах.

например

class Timer

 def self.start
    $a = Time.now
 end

 def self.stop
    Time.now - $a
 end


end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...