定义attr_writer方法def color =(new_color)。为什么=?

时间:2018-10-09 02:45:15

标签: ruby

为了授予对实例变量的写访问权限,我们使用attr_writer,或通过以下方式手动定义访问器方法:

class Car
  attr_reader :color

  def initialize(color)
    @color = color
  end

  def color=(new_color)
    @color = new_color
  end
end

为什么使用=?我以为这只是个约定。如果我使用*而不是=,则无法使用。

在哪里可以找到有关在Ruby内部如何构建此方法的信息?

1 个答案:

答案 0 :(得分:0)

这很直观,因为attr_writer是一个setter方法,并且由于变量分配是用my_string = 'foo'在ruby中完成的,所以很有意义。

如果您想要来源,请参见https://apidock.com/ruby/Module/attr_writer