Как работает следующий код и, что более важно, почему он работает именно так?
class Example
def one
def one
@value = 99
end
puts "Expensive Call"
@value = 99 # assume its expensive call
end
end
ex = Example.new
puts ex.one # => "Expensive Call"; 99
puts ex.one # => 99
Здесь при первом вызове метода one
Ruby выполняет внешний метод one
, но при последующих вызовах он выполняет только внутренний метод one
, полностью игнорируя внешний метод one
.
Я хочу знать, как это происходит и почему это происходит так.