3
是否有辦法爲實例變量創建別名(而不是討論db別名屬性),而不是將其分配給另一個實例var?實例變量的別名?
對於前:
@imavar
alias_attribute(@hesavar, @imavar)
是否有辦法爲實例變量創建別名(而不是討論db別名屬性),而不是將其分配給另一個實例var?實例變量的別名?
對於前:
@imavar
alias_attribute(@hesavar, @imavar)
可以別名getter方法來代替。
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
如果您依靠伊娃名稱作爲內部API,我會認爲代碼味道。 – 2010-06-27 12:24:59