2011-12-19 75 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」進行尋址。