我希望有一个ruby类,其中我需要的所有方法都是类方法,因此我将它们定义为def self.method_name
,现在所有方法都被定义为self.
有没有办法避免编写self.
,并一次性将所有方法声明为类级别。
一个是将它们放在一个模块中,让类扩展它。
还有什么?
答案 0 :(得分:4)
class Foo
class << self
def class_method_name1
end
def class_method_name2
end
end
def instance_method_name1
end
def self.class_method_name3
end
end
答案 1 :(得分:0)
class Foo
def self.bar
puts 'class method'
end
def baz
puts 'instance method'
end
end
Foo.bar # => "class method"
Foo.baz # => NoMethodError: undefined method ‘baz’ for Foo:Class
Foo.new.baz # => instance method
Foo.new.bar # => NoMethodError: undefined method ‘bar’ for #<Foo:0x1e820>