0

问题如标题所示。假设我在下面有一个简单的例子:

class Vehicle
  attr_accessor :wheels
end

class Car < Vehicle
  def initialize
    self.wheels = 4
  end
end

class Truck < Vehicle
  def initialize
    @wheels = 16
  end
end

我很好奇哪种方式被认为是正确或更好地调用 wheels母亲的 writer 方法Vehicle

4

1 回答 1

3

self.wheels = 4更灵活,因为它在后台调用了一个 setter 方法:self.wheels=(4)

因此,如果您想在将值放入 之前对其进行处理@wheels,则可以定义该函数:

def wheels=(val)
  # do something
  @wheels = new_val
end
于 2011-09-30T03:09:28.677 回答