我有以下类:如何在Ruby中重写Array构造函数?
class Library < Array
attr_accessor :authors
end
而且我想,用来初始化的作者之类的构造函数中的属性,并且仍然使用Array#新的行为。我试过这个:
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'。 –