Alias 方法
当你使用来自多个模块有类似命名的方法时,避免歧义的一种方式是给这些方法一个“别名”(alias)。别名是具有新名称的现有方法的副本。你可以使用 alias
关键字后跟新名称,以及旧名称:
alias_methods.rb
alias happyexpression expression
你还可以使用别名(alias)来创建一个已被覆盖方法的副本,以便你可以在定义被覆盖之前指定引用其版本:
module Happy
def Happy.mood
return "happy"
end
def expression
return "smiling"
end
alias happyexpression expression
end
module Sad
def Sad.mood
return "sad"
end
def expression
return "frowning"
end
alias sadexpression expression
end
class Person
include Happy
include Sad
attr_accessor :mood
def initialize
@mood = Happy.mood
end
end
p2 = Person.new
puts(p2.mood) #=> happy
puts(p2.expression) #=> frowning
puts(p2.happyexpression) #=> smiling
puts(p2.sadexpression) #=> frowning