【发布时间】:2016-09-25 21:00:00
【问题描述】:
我有以下课程:
class Library < Array
attr_accessor :authors
end
我想在类的构造函数中初始化 authors 属性,并且仍然使用 Array#new 行为。我试过这个:
class Library < Array
attr_accessor :authors
def initialize(**args)
@authors = {key1: 'val1', key2: 'val2'}
super(args)
end
end
但这会产生错误。
我怎样才能做到这一点?
【问题讨论】:
-
一种方法是将
Array::new别名为Array::old_new,然后创建一个新的Array::new方法,在调用Array::old_new之前或之后(取决于您的需要)执行您想要的操作。跨度>