Ruby's Louvre

每天学习一点点算法

导航

2011年8月28日 #

eval, class_eval, instance_eval和binding

摘要: 前些天写html生成器的时候用到了erb,在生成html的时候是这么一句: html=tpl.result(binding)binding这个变量(Kernel的一个方法 T_T)有点古怪,就搜了下。它表示了ruby的当前作用域,没有任何对外可见的成员函数,唯一的用途就是传递给eval作第二个参数。因而可以这样:def test_binding magic='brother Chun is PURE MAN' return bindingendeval "puts magic", test_binding这样就穿越了一个作用域。有时可以见到这样的构造函数:a 阅读全文

posted @ 2011-08-28 09:29 司徒正美 阅读(2493) 评论(1) 推荐(0) 编辑