所以我试着在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
答案 0 :(得分:1)
您正在向start
的返回值发送stop
和gets
,这是一个字符串,而不是计时器。
此外,您应该使用实例变量而不是全局变量来保存计时器值。而且你还需要创建一个Timer实例(或将Timer转换为模块,但即使这样使用实例变量,也不是全局变量)。
答案 1 :(得分:0)
看起来你没有初始化一个类对象。因此,您需要使用初始化方法,或者可以在方法中引用该类。
例如
class Timer
def self.start
$a = Time.now
end
def self.stop
Time.now - $a
end
end