塞特方法不起作用

时间:2016-01-10 04:33:40

标签: ruby

这里的目标是为实例变量product [sic]建立一个setter方法,然后将其设置为等于另一个类[sic]方法中的值。

def product=(number1,number2)
  @product = number1*number2
end
def answer()
  number_1 = 999
  number_2 = 999
  product=(number_1,number_2)
end

但是,由于语法错误,代码无法编译:{{1​​}}。

1 个答案:

答案 0 :(得分:3)

这不是如何使用setter方法。您不直接调用它,而是使用赋值=运算符调用它。例如:

class MyObject
  def product=(product)
    # here we take advantage of a setter by adding extra code. In
    # this case ensure that product is actually an int.
    @product = product.to_i
  end
end

def answer()
  number_1 = 999
  number_2 = 999
  m = MyObject.new()
  m.product = number_1*number_2  # this will invoke the setter method
end
相关问题