我有以下代码:范围与“自我”的关键字
def self.ftoc(temp_in_fahrenheit)
(temp_in_fahrenheit - 32) * 5.0/9.0
end
def self.ctof(temp_in_celcius)
(temp_in_celcius * 9.0/5.0) + 32
end
def calculate_temperatures
@f = Temperature.ctof(@c) if (@f == nil && @c != nil)
@c = Temperature.ftoc(@f) if (@c == nil && @f != nil)
end
这工作得很好。但是,如果我改变了代码
def calculate_temperatures
@f = self.ctof(@c) if (@f == nil && @c != nil)
@c = self.ftoc(@f) if (@c == nil && @f != nil)
end
我得到的
undefined method 'ftoc' for #<Temperature:0x000000025486a0 @f=50>
我本来以为“自我”,作为类温度的情况下,将能够使用ctof错误/ ftoc方法,但事实并非如此。有人能帮助我理解我错过了什么吗?
非常感谢。
谢谢!我将以此作为答案,因为我的困惑源于'自我'根据使用位置而变化的事实,这有助于我理解这一点。 – mikeappell