我编写了一个扩展了几个基类Ruby类的库,主要通过方法别名来观察包装器。但是,我用数组实例化速记(例如@a = [1, 2, 3]
)遇到了障碍我似乎找不到任何通过速记方式在创建Array对象时实际调用的方法。它不是当前作用域中的继承#[]
方法,也不是祖先链中的任何类或模块继承的方法。我还基于Ruby C代码重载或观看了类#new
到实例的#initialize
到Array类对象的singleton_method #[]
的每个方法
rb_define_singleton_method(rb_cArray, "[]", rb_ary_s_create, -1);
有谁知道我如何分配一个方法,该方法将在速记数组实例实例化的方法链中?