我是ruby的新手,我想知道以下内容,我可以在同一个类中调用一个方法,例如:
class myClass
$myVar = inClass
def inClass
@value = (gets data from db)
end
end
如果有办法做到这一点,有人可以帮助我吗?
答案 0 :(得分:0)
您可以执行以下操作
class MyClass
def in_class
@value = (gets data from db)
end
def call_inclass
$my_var = in_class # don't use global variable.
end
end
创建一个新的实例方法call_inclass
并从那里调用所需的类in_class
。由于in_class
是一种实例方法,因此class.. end
正文self
内的$myVar = in_class
设置为该类。因此,$myVar = in_class
只会将错误视为无方法错误。由于$myVar = self.in_class
它将被隐式解释为self
,其中MyClass
为in_class
。 MyClass
不是MyClass
的方法,而是in_class
实例的实例方法。
因此将方法调用包含在另一个实例方法中的call_inclass
中,就像这里in_class
一样。
另一种方法是将MyClass
作为class MyClass
# again don't use global variable, rather use
# class instance variable, @my_var
$my_var = in_class
def self.in_class
@value = (gets data from db)
end
end
的单例方法。然后它会工作。
{{1}}