3

必要なすべてのメソッド、つまりクラスメソッドが含まれるrubyクラスが欲しいので、それらをとして定義しました。これdef self.method_nameで、すべてのメソッドは次のように定義されます。self.書き込みを回避する方法はありますかself.。一度にすべてのメソッドをクラスレベルとして宣言します。 。

1つは、それらをモジュールに入れて、クラスに拡張させることです。

ほかに何か?

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 に答える