3

我想要一个 ruby​​ 类,其中我需要的所有方法都是类方法,因此我将它们定义为def self.method_name,现在所有方法都定义为self.是否有任何方法可以避免编写self.,并一次性将所有方法声明为类级别.

一种是将它们放在一个模块中并让类扩展它。

还有什么?

4

2 回答 2

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
于 2012-10-13T18:26:32.360 回答
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>
于 2015-09-11T04:06:34.050 回答