赞 | 0 |
VIP | 0 |
好人卡 | 1 |
积分 | 1 |
经验 | 167035 |
最后登录 | 2013-9-15 |
在线时间 | 57 小时 |
Lv1.梦旅人 风之塞尔达
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 57 小时
- 注册时间
- 2005-10-22
- 帖子
- 2492
|
本帖最后由 link006007 于 2009-11-7 22:12 编辑
alias 成为ruby最热门语法了= =
alias 就是给方法取别名.
从效果上来说:
原先有一个方法叫 method, 那么 alias method_old method 之后,那么以后调用method_old时调用的就是原来method的执行过程
这样可以通过重定义method来调用 method_old 实现对原函数执行过程的追加
从解释器上来说:
就是找到原始函数符号和执行内容的映射,修改这个映射,更新符号表
ruby对脚本的组织是以node来管理的,在ruby解释器读入脚本时,遇到alias,则会查找目标类的原函数,
然后判断alias有效性,无效则抛出异常(如没有原始方法,这回调用print_undef方法),如果有效,则跟新node连接信息,插入符号表,最后调用一次method_added或者singleton_method_added<--这两个是ruby脚本可调用的方法
link006007 发表于 2009-10-19 02:15
汗.... 我也说不清楚 = = |
|