我在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
答案 0 :(得分: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
答案 1 :(得分:0)
因为没有任何错误。只有问题是使用适当的属性调用方法 还有一件事情在@x和a之间有很多区别。 add的方法定义是错误的。
def add()
x + y
end
而不是重写此方法,如
def add()
@x + @y
end
希望对你有所帮助。