0

私の問題は、Struct.newを拡張するクラスがたくさんあることです。そして今、私はそれらすべてに共通のクラスメソッドを追加する必要があります。Structが「通常の」スーパークラスである場合、その上にクラスメソッドを定義することができ、すべてのサブクラスにもそのメソッドがあります。

そうではない場合、この動作をどのように再現しますか?例えば、

class Foo < Struct.new(:foo); end
Foo.respond_to?(:perform) #=> true
class Bar < Struct.new(:bar); end
Bar.respond_to?(:perform) #=> true
4

1 に答える 1

2

Structでメソッドを定義できないのはなぜですか?

def Struct.perform
end

class Foo < Struct.new(:foo); end
Foo.respond_to?(:perform) #=> true
class Bar < Struct.new(:bar); end
Bar.respond_to?(:perform) #=> true
于 2012-07-19T19:12:04.400 に答える