Ruby 高级编程特性深度解析
1. 方法别名与删除
在 Ruby 中,可以使用 alias_method 来为方法创建别名。如下代码展示了如何为 String 类的 reverse 方法创建别名 original_reverse :
alias_method n, m # Make n an alias for m
}
end
backup(String, :reverse)
"test".original_reverse # => "tset"
若要删除方法,有两种选择: remove_method 和 undef_method 。这两个都是 Module 的私有方法。
- remove_method :从当前类中移除方法的定义。若超类中存在该方法的定义,将继承超类的版本。
- undef_method :更为严格,即使类有继承的方法版本,也会阻止通过该类的实例调用指定的方法。
若想防止对类进行动态修改,可调用类的 freeze 方法。一旦类被冻结,就无法再进行修改。
2. 处理未定义方法
当方法名解析算法未能找到方法时,会查找名为 method_missing 的方法。该方法被
超级会员免费看
订阅专栏 解锁全文
42

被折叠的 条评论
为什么被折叠?



