用红宝石混叠一种方法

别名Ruby中的方法或变量名称是为方法或变量创建第二个名称。别名可以用来为使用类的程序员提供更多表达性的选项,或者帮助覆盖方法并改变类或对象的行为。Ruby使用"别名"and"别名U方法"关键字提供此功能。

创建第二个名称

别名关键字有两个参数:旧方法名称和新方法名称。方法名称应作为标签传递,而不是字符串。标签用于引用方法和变量而不直接引用它们。如果您'是一位新的红宝石程序员,标签的概念可能看起来很奇怪,但每当您看到像"这样的标签;:methodname,"只需将其读取为"称为methodname。"下面的例子声明了一个新的类,并为称为start的on方法创建了一个别名。

 #!/usr/bin/env ruby
class Microwave
def on
puts"Microwave on"
end
别名:start:on
end
m=微波
m.sta

科普视频下载

改变类的行为

在声明'之后,可能有时候你想改变一个类的行为。您可以通过创建与现有类声明名称相同的第二类声明来别名并将新方法添加到现有类中。您还可以使用类似于继承类语法的语法将别名和方法添加到单个对象。任何类的行为都可以通过为任何方法创建别名,然后创建一个新方法(使用原始方法名称)来更改,该方法使用别名调用该方法。

在下面的示例中,声明微波类并创建一个实例。第二类声明使用别名方法更改"on"方法的行为,以添加警告消息。第三类声明用于更改特定微波实例的行为以添加更严格的警告。多次混叠方法时,请务必使用不同的方法名称来存储旧方法。

#!/usr/bin/env rubyclass微波
def on puts"微波on"end
endm=微波.newm.onclass微波别名:oldon1:on
def on puts"警告:请勿插入金属物体!"此特定微波
class
put"此微波较弱,添加额外时间"
oldŠon2
end
end
m.on#显示额外消息
m2=微波
m2.on#不分散

教育_1