ruby_的class_eval和instance_eval简记

 

有很多文章来讲这个ruby rails中最重要最频繁使用的方法。

详细的理解,还需要去仔细理解ruby中的对象模型等。

略。

 

时间一长,就会忘记的,或者得回忆一下了,尤其是去写一段时间别的语言例如java python,再回来的时候,发现,哦,忘记了~需要再想想对象模型,恩,理解了。

 

很麻烦,对不对,何不让大脑休息一下~找个简记方法吧:

*1 C.class_eval "eval_str" 等价于在C中放入eval_str这段代码;

     class_eval只有类对象(Class Object)才能执行,普通对象没有这个方法

*2 obj.instance_eval "eval_str" 等价于class << obj eval_str end,也就是在obj的单例类中放入eval_str这段代码

     同时还能访问obj的实例变量!

     instance_eval对任意实例都可以运行

 

 

 

原理简记:

*1 The Module class defines a method named class_eval . (module_eval is a synonym for class_eval .) 

     Class < Module < Object

*2 The Object class defines a method named instance_eval. ruby中都是对象,所以都可以运行哈。

 

 

 

====本文结束====

--------本文结束--------

..........本文结束..........

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值