Ruby 元编程索引
大概会持续更新吧。。。。
- 打开类 Open Class 
- 猴子补丁 Monkeypatch 
- 接受者(receiver)和祖先链(ancestors chain)eg: 查看String 类的祖先连 String.ancestors 
- 
- included
- extended
- prepended
- inherited
- method_missing (幽灵方法): 当接受的反方法不存在时会调用这个方法,配合 *arg可以接受任意个数的参数
 1 
 2
 3def method_missing(method, *args) 
 "The method #{method} with you call not exists"
 end
- 
- send (Obj.send(:define_method, ‘desc’))
- public_send
 
- instance_eval 方法仅仅会修改 self,而 class_eval 方法会同时修改 self 和当前类 
- const_missing 
- define_const 
- 白板类 BasicObject 
- eval, instance_eval, module_eval, class_eval 
- 
- attr_reader (getter)
- attr_writer (setter)
 
- define_method 添加类的实例方法 - A.send(:define_method, :hi, &p1)等于- Class A; define_method, :hi, &p1; end
- singleton_class 添加类所具有的方法 - A.singleton_class.send(:define_method, :hi, &p1)等于- Class A; self.define_method, :hi, &p1; end
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hi! 上天不?!
 评论





