Книга: Программирование на языке Ruby

9.2.1. Более строгая реализация стека

9.2.1. Более строгая реализация стека

Мы обещали показать, как можно сделать стек защищенным от некорректного доступа. Выполняем обещание! Вот пример простого класса, который хранит внутри себя массив и управляет доступом к этому массиву. (Есть и другие способы, например делегирование, но описанная реализация проста и прекрасно работает.)

class Stack
 def initialize
  @store = []
 end
 def push(x)
  @store.push x
 end
 def pop
  @store.pop
 end
 def peek
  @store.last
 end
 def empty?
  @store.empty?
 end
end

Мы добавили одну операцию, которая для массивов не определена; метод peek возвращает элемент, находящийся на вершине стека, не выталкивая его.

Нижеследующие примеры подтверждают адекватность такого определения класса.

Оглавление книги


Генерация: 0.858. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз