同一类中的调用方法

时间:2014-02-10 19:28:52

标签: ruby

我是ruby的新手,我想知道以下内容,我可以在同一个类中调用一个方法,例如:

class myClass
    $myVar = inClass

    def inClass
        @value = (gets data from db)
    end
end

如果有办法做到这一点,有人可以帮助我吗?

1 个答案:

答案 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,其中MyClassin_classMyClass不是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}}