Можно ли в Ruby использовать переменные инстанса внутри модуля?

Аватар пользователя Nikolai Gagarinov
Nikolai Gagarinov
14 марта 2022

Ruby позволяет использовать переменну инстанса внутри модуля, для этого необходимо использовать метод, который будет содержать внутри себя переменную инстанса

module Stacklike
  def stack
    @stack ||= []
  end

  def push(item)
    stack.push(item)
  end

  def pop
    stack.pop
  end
end

class Stack
  include Stacklike
end

stack = Stack.new

stack.push(1) # [1]
stack.push(2) # [2]
stack.push(3) # [3]
stack.pop # 3
0 0
Пройдите курс по программированию бесплатно