Ruby 编程:方法别名、类定义与异常处理全面解析
1. 方法别名(Aliasing)
方法别名允许我们为现有的方法、运算符、全局变量或正则表达式反向引用创建新的名称。但需要注意的是,局部变量、实例变量、类变量和常量不能被别名化。
class Demo
attr_reader :attr
def attr=(val)
@attr = val
"return value"
end
end
d = Demo.new
d.attr = 99
d.attr=(99)
d.send(:attr=, 99)
puts d.attr # 输出: 99
在这个例子中,我们为 attr= 方法提供了不同的调用方式,最终都成功设置了 @attr 的值。
另外,别名还可以用于运算符和全局变量:
class Fixnum
alias plus +
end
puts 1.plus(3) # 输出: 4
alias $prematch $`
"string" =~ /i/
puts $prematch # 输出: "str"
alias :cmd :`
puts cmd "date"
当方法被别名化后,新名称引用的是原始方法体的副本。如果后续重新定义了该方法,别名仍然会调用原始的实现:
def meth
"original
超级会员免费看
订阅专栏 解锁全文
71

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



