Ruby传递对象实例作为参数

时间:2011-12-19 09:53:04

标签: php ruby

在PHP中,我可以在类的方法中执行此操作:

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

这允许我通过$ this将类的整个实例传递给另一个类。我怎样才能在Ruby中实现同样的目标?

2 个答案:

答案 0 :(得分:7)

在ruby中,您有self个关键字。您可以阅读in this article,了解self在不同情境中的行为。

答案 1 :(得分:2)

你当然可以在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”来解决。