2013-06-24 58 views
-1
local_var = "account" 
def account.add_nums(num1, num2) 
    num1 + num2 
end 

account.add_nums(2,5) 

當我檢查輸出。它說:「主未定義的局部變量或方法`賬戶」:對象(NameError)」我沒有得到簡單方法的輸出

是否有人可以幫助我?

編輯:我使用的編譯器是 「http://www.learnstreet.com/scratchpad/ruby」。那是我學習Ruby的地方。不幸的是,我堅持了與

感謝, 西

+3

什麼'account'?你知道你不能將點作爲方法名稱的一部分,對嗎? –

+0

你有一個'account'類嗎?我們需要更多信息。 –

+0

@JakeSellers,他怎麼能擁有一個'account'類?類必須是常量,因此必須大寫。 – Shoe

回答

0

你可以做到以下幾點:

class Account 
    def self.add_nums(num1, num2) 
    num1 + num2 
    end 
end 

Account.add_nums(2, 5) 
+0

你好。我如何將自己改爲「abcd.sdd_nums(num1,num2)」之類的東西。當我改變自我。它說「局部變量undefinied」。所以這是我的疑問。我如何編輯它?謝謝 –

+0

好吧,'self'指的是'Account'類。它代表'Account'類。你不能在這裏放置一個自定義值。這就是Ruby的工作原理。也許你應該給我們更多關於你想達到什麼的信息:) –

+0

好吧!謝謝。我想在線編輯爲新手 –

-1

點arn't允許方法名除非你聲明單變量方法在變量account上,這是未定義的。試試這個:

def add_nums(num1, num2) 
    num1 + num2 
end 

add_nums(2,5) 

或者把它放在一個類:

class Account 
    def add_nums(num1, num2) 
    num1 + num2 
    end 
end 

account = Account.new 
account.add_nums(2, 5) 

不要讓這一個單方法。單身法不適用。

+0

Downvoter?什麼? – Linuxios

0

問題是,在本教程中,您正在編寫代碼的上下文中已經有一個Account類和一個對象account爲您定義。

之外的環境中,你必須定義這些東西自己,而最簡單的方法是聲明的對象與預先定義的核心類Object。所以,如果你寫

account = Object.new 

,那麼你可以繼續做

def account.add_nums(num1, num2) 
    num1 + num2 
end 

account.add_nums(2, 5) 

,其結果將是7如你預期。

記住account不是Account類的一個實例,所以它沒有balancewithdraw!deposit!方法,並沒有實例變量@balance。其實這很無聊。

我建議您使用不同的在線開發工具來測試Ruby代碼,因爲LearnStreet專門針對實現本教程。 compileonline.com特別好,支持很多種語言。

重要的是要注意,本教程教導了僅在單個對象上定義的稱爲單例方法。這種方法非常不尋常。通常你想一個類中定義的方法,使是從該類創建的每個對象都有可用的那些方法。我想他們已經做到了,所以他們可以在告訴你課程之前教授方法。

+0

@Sai Krishna深:我希望這有助於解釋你的問題。 – Borodin

相關問題