Как правильно инициализировать объект, который вызывает метод экземпляра его матери? - PullRequest
0 голосов
/ 30 сентября 2011

Вопрос по названию. Скажем, у меня есть простой пример ниже:

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 писатель метод матери Vehicle?

1 Ответ

3 голосов
/ 30 сентября 2011

self.wheels = 4 более гибок, потому что под капотом он вызывает метод установки: self.wheels=(4)

Так что, если вы когда-нибудь хотели что-то сделать со значением до того, как оно будет помещено в @wheels, выможет определить эту функцию:

def wheels=(val)
  # do something
  @wheels = new_val
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...