有没有办法为实例变量创建别名(不是讨论db别名属性),而不是将其分配给另一个实例var?
例如:
@imavar
alias_attribute(@hesavar, @imavar)
答案 0 :(得分:6)
您可以改为使用getter方法。
答案 1 :(得分:6)
Ruby实际上没有属性。当您使用attr_reader :imavar
时,您正在创建一个检索值的方法:
def imavar
@imavar
end
因此,要为变量创建别名,可以为方法创建别名:
alias_method :hesavar, :imavar
完整的例子是:
class DataHolder
attr_reader :imavar
alias_method :hesavar, :imavar
def initialize(value)
@imavar = value
end
end
d = DataHolder.new(42)
d.imavar
=> 42
d.hesavar
=> 42