所以我是一名java程序员,我正试图在ruby上做得更好,但我没有基本的原则而且没有得到任何结果。这是我的班级
class Main
a = Car.new
a.instance_variable_set("@make", 'Hyundai')
if a.make == 'Hyundai'
self.get_hyundai_vehicle_information(a)
end
def get_hyundai_vehicle_information(a)
go_to_hyundai_usa_and_select_vehicle
end
end
但我一直收到错误
undefined method 'get_hyundai_vehicle_information' for Main:Class
答案 0 :(得分:2)
您在类主体中运行的代码是在Main
类的单例类的上下文中执行的。这基本上意味着,它在类创建期间在类范围内运行一次,但不在任何类实例中运行。
现在,您定义的方法仅适用于实例(即它是实例方法)。您可以通过将self.
添加到方法名称来定义类方法。然后,您需要在调用之前定义方法。
请记住,在Ruby中,每一段代码都按顺序进行评估。这包括类和方法定义。在定义代码的代码运行之前,您无法调用方法。