2011-12-19 29 views
2

在PHP中我可以一个类的方法中做到这一点:红宝石传递对象实例作为参数

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

这让我通过$这之类的整个实例传递给不同的类。我如何在Ruby中实现相同的功能?

回答

7

在ruby中你有一个self关键字。你可以阅读关于它in this article,它解释了self如何在不同的情况下表现。

+1

好的,那跟PHP使用self :: then有很大不同。谢谢 – Dan

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 

^^^^你可以看到,你申请。测试对象存储在foo的变量的方法。

类定义中的当前对象可以使用关键字“self”进行寻址。