已經寫了一個方法;當我嘗試運行它,我得到的錯誤:稱爲錯誤的私有方法
NoMethodError: private method ‘subtotal’ called for 39.99:Float
at top level in grades.rb at line 9
Program exited with code #1 after 0.04 seconds.
以下是代碼:
def subtotal(qty = 1)
return nil if self.to_f <= 0 || qty.to_f <= 0
self.to_f * qty.to_f
end
book = 39.99
car = 16789
puts book.subtotal(3)
puts car.subtotal
puts car.subtotal(7)
問題:如果我沒有定義類,它不應該默認爲對象類?那是我對Ruby會做什麼的理解。這種理解是不正確的? – pdenlinger 2011-06-09 19:52:33
@pdenlinger:這是正確的,但它將其定義爲Object的*私有方法*。它不僅僅是一個默認範圍 - 它是一種特殊的行爲,旨在模仿像Python這樣的語言來定義函數。 – Chuck 2011-06-09 20:08:15
知道了!非常感謝你的解釋。 – pdenlinger 2011-06-10 00:05:57