2014-12-01 20 views
0

添加(方法)創建,但錯誤表明它不是

我在初級水平的Ruby,我正在努力的練習要求我創建一個計算器class_與各種數學方法。

這是我運行的錯誤代碼。我在課程中給出的提示提到了@calc,但我不知道在哪裏或爲什麼要插入它。

class Calculator 
    attr_accessor :x, :y 

    def initialize(x,y) 
    @x, @y = x, y 
    end 

    def add() 
    x + y 
    end 

    def subtract() # **or should it be listed as y,x?** 
    y - x 
    end 

    def multiply() 
    x * y 
    end 

    def divide() 
    @x.to_f/@y.to_f 
    end 

end 
=> nil 

calc = Calculator.new(5 , 2) 
=> #<Calculator:0x00000101067258 @x=5, @y=2> 

NoMethodError: undefined method `add' for #<Calculator:0x00000101067258 @x=5, @y=2> 
    from (irb):32 
+1

難道你不請清理代碼片段格式? – zuba 2014-12-01 16:11:59

+2

刪除'self.description'中的字符串'.' – rohit89 2014-12-01 16:15:04

+0

>抱歉格式化...不熟悉md – Tishpr 2014-12-01 16:27:03

回答

1

您有兩個錯誤。

首先,有該行的字符串(在它之外)後點:

"Performs basic mathematical operations". 

應該是:

"Performs basic mathematical operations." 

而另一方面,你在你的代碼有一個額外的end 。在這些線路的終點:

 def divide(x,y) 
     @x.to_f/@y.to_f 
     end 
    end 
end 

應該是:

def divide(x,y) 
    @x.to_f/@y.to_f 
    end 
end 
0

由於沒有任何錯誤。只有問題是調用具有適當屬性的方法 @x和a之間還有很多不同之處。 添加的方法定義是錯誤的。

def add() 
    x + y 
end 

,而不是這個重寫這個方法,如

def add() 
    @x + @y 
end 

希望它能幫助你。

+0

您能否告訴我們我們的答案是否已經解決了您的問題。 – VKatz 2015-12-22 20:04:42

相關問題