Я пишу два вида синтаксиса для расширения, но появляется другое поведение, одно возвращение 50, другое возвращение 70, кто-нибудь может объяснить, почему?Как работает синтаксис расширения ruby?
module Discount
def cost
super + 20
end
end
class Toy
extend Discount
def cost
50
end
end
# check
Toy.new.cost #=> 50
Но:
module Discount
def cost
super + 20
end
end
class Toy
def cost
50
end
end
# check
Toy.new.extend(Discount).cost #=>70
Дают еще один пример: класса 'Burger Защиту стоить конца конец модуля чизбургера Защиту стоимость супер + 10 концевых конца модуль LargeBurger def стоимость super + 15 конец конец гамбургер = Burger.new ставит burger.extend (чизбургер) .cost ставит burger.extend (LargeBurger) .cost' – Tsao
Код выше выхода 60 и 75, выглядит новый метод расширения стоимости модуля не отменяет старую стоимость version – Tsao
Это немного меня смущает – Tsao