首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

ruby_的class_eval跟instance_eval简记

2012-12-21 
ruby_的class_eval和instance_eval简记?有很多文章来讲这个ruby rails中最重要最频繁使用的方法。详细的理

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中都是对象,所以都可以运行哈。

?

?

?

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

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

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

?

热点排行