2015-05-28 28 views
-3

我想傳遞一個對象來運行並將它返回給調用者函數。例如,如何調用傳遞給方法的參數?

1.rb是我的第一個文件

require '2' 
class A 
    x=B.new 
    var = x.func 
end 

2.rb是我的第二個文件

class B 
    def self.func 
    #here i have to return same object that is x to var.what to do 
    end 
+0

爲什麼我得到負面票。我試圖返回自我,但它沒有奏效 – dabs

+0

將'def self.func'更改爲'def func'。 'self.func'意味着方法在類B上定義,而不是B的實例。然後'return self'將起作用。 – Max

+1

我懷疑反對票是因爲這個問題難以理解。我可以看到一些我理解的詞,比如「參數」和「方法」,但是「我怎樣才能調用傳遞給方法的參數?」沒有意義,並且在問題中所需的代碼和解釋無助於此。正如你正在學習的那樣,你正在使用非常寬鬆的描述,這是無法幫助的。嘗試將其分解成更多步驟,然後用簡單的英語寫一些你正在嘗試做的事情。 –

回答

0

你是對從func函數返回的自我,但不要把它聲明與類方法def self.func但實例方法def func

With def self.func您需要通過B.func(類方法調用)調用它,而不是B.new.func(實例方法調用)。

這有幫助嗎?

+0

我做到了。但它沒有工作。如果我在rb1文件中更改x = A.new,它會工作 – dabs

+0

它不會因爲A沒有定義func方法。 :)你知道會有什麼幫助嗎?將您的文件合併在一起,並粘貼到控制檯中輸入的內容以及它返回的內容(特別是錯誤)。也可能試着解釋你在做什麼,所以我們不會被這個太抽象的例子所困擾,目前還不清楚你想做什麼。或者,爲什麼,真的。 – Ollie

相關問題