在类中创建方法并在Ruby中使用它

时间:2010-10-08 21:31:31

标签: ruby class

所以我试着在ruby中编写一个简单的计时器程序。我在“Timer”类中定义了我的方法但是当我调用它时它给了我一个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 个答案:

答案 0 :(得分:1)

您正在向start的返回值发送stopgets,这是一个字符串,而不是计时器。

此外,您应该使用实例变量而不是全局变量来保存计时器值。而且你还需要创建一个Timer实例(或将Timer转换为模块,但即使这样使用实例变量,也不是全局变量)。

答案 1 :(得分:0)

看起来你没有初始化一个类对象。因此,您需要使用初始化方法,或者可以在方法中引用该类。

例如

class Timer

 def self.start
    $a = Time.now
 end

 def self.stop
    Time.now - $a
 end


end