在 Rails 模型中,我已经看到我假设的被称为类方法的定义要么由
def 方法名 #做一点事 结尾
和
def self.methodName #做一点事 结尾
我似乎找不到任何地方可以描述这两者之间的差异,以及何时应该使用一个与另一个。
也不确定这是否特定于 Ruby、Rails 或其他语言。谢谢
在 Rails 模型中,我已经看到我假设的被称为类方法的定义要么由
def 方法名 #做一点事 结尾
和
def self.methodName #做一点事 结尾
我似乎找不到任何地方可以描述这两者之间的差异,以及何时应该使用一个与另一个。
也不确定这是否特定于 Ruby、Rails 或其他语言。谢谢
假设User
模型
实例方法
def methodName
#do something
end
调用此方法使用
User.new.methodName
类方法
def self.methodName #OR User.methodName
#do something
end
调用此方法使用
User.methodName
第一个是实例方法,第二个是类方法。你可以在这里找到更多信息
并非两者都是类方法。
def methodName
是实例方法,而 defself.methodName
是类方法。
两者之间的区别可以在下面的示例中进行解释。
class MyClass
def instance_method_name
end
def self.class_method_name
end
end
MyClass.class_method_name
MyClass.new.instance_method_name