Псевдоним для переменных экземпляра? - PullRequest
4 голосов
/ 27 июня 2010

Есть ли способ создать псевдонимы для переменных экземпляра (не говоря об атрибутах псевдонима db), кроме назначения его другому экземпляру var?

Например:

@imavar

alias_attribute(@hesavar, @imavar)

Ответы [ 2 ]

6 голосов
/ 27 июня 2010

Руби на самом деле не имеет атрибутов. Когда вы используете 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
6 голосов
/ 27 июня 2010

Вместо этого вы можете использовать методы получения псевдонимов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...