我是Ruby新手,更常见的是面向对象编程。
我认为我想要的只是this的Ruby翻译。也就是说,我希望能够初始化类的实例,然后一旦设置了某个属性,就在其上调用一个方法来转换它。
例如,假设我有一个具有温度属性的Weather类,我希望它在设置后立即从华氏温度转换为摄氏温度。这是我希望这样做的方式。
today = Weather.new
today.temp = 32
today.temp # => 0
我该怎么做?
答案 0 :(得分:1)
您可以编写自己的attr_writer
- 样式方法来完成此任务。如果不清楚,请随意发表评论。
class Weather
attr_reader :temp
def temp=(val)
@temp = f_to_c(val)
end
def f_to_c(temp)
(temp - 32).to_f * (5.0 / 9.0)
end
end