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 回答