1

我在 Ruby 方面处于初级水平,我正在进行的一项练习要求我使用各种数学方法创建一个 Calculator 类。

这是我运行的代码,有错误。我在课程中得到的提示提到了@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
4

2 回答 2

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
于 2014-12-01T16:31:20.737 回答
0

因为没有任何错误。唯一的问题是调用具有适当属性的方法还有一件事,@x 和 a 之间有很多区别。add 的方法定义是错误的。

def add() 
  x + y 
end

而不是这个重写这个方法,比如

def add()
  @x + @y
end

希望它对你有帮助。

于 2014-12-01T17:29:19.597 回答