Ruby pass экземпляр объекта в качестве параметра - PullRequest
2 голосов
/ 19 декабря 2011

В PHP я могу сделать это в методе класса:

Condition::evaluate($this, $primaryCondition);

Это позволяет мне передать весь экземпляр класса другому классу через $ this.Как я могу добиться того же в Ruby?

Ответы [ 2 ]

7 голосов
/ 19 декабря 2011

В рубине у вас есть ключевое слово self. Вы можете прочитать об этом в этой статье , это объясняет, как self ведет себя в разных контекстах.

2 голосов
/ 19 декабря 2011

Конечно, вы можете сделать это в Ruby.

Рассмотрим два класса:

class Foo
  def test
    puts 'We are in class: For'
  end
end

class Bar
  def initialize(your_object)
    @your_object = your_object
  end
  def test(i = nil)
    puts 'We are in class: Bar'
    if @your_object
      @your_object.test
    end
  end
end

foo = Foo.new
bar = Bar.new(foo)

bar.test

# We are in class: Bar
# We are in class: For

^^^^ Как видите, вы применяете метод .test к объекту, который хранится в переменной foo.

Текущий объект в определении класса может быть адресован с ключевым словом «self».

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