Зачем использовать scala.collection.immutable.Stack
Мне нужно что-то, чтобы хранить LIFO. Нет необходимости в прохождении и других функциях, кроме push и pop.
Я нашел специальный класс в коллекции scala для создания стека. Но ему не хватает объекта Nil в сопоставлении с образцом и других удобных scala идиомах. Неизменяемые списки хорошо подходят на первый взгляд, у них есть недостатки конструкции и для извлечения, и это все необходимо для LIFO.
Есть ли какая-либо причина для scala.collection.immutable.Stack существование? Почему я должен предпочесть использовать его, какие варианты использования показывают его преимущества?
Ответы
Ответ 1
Из документации API:
Примечание: Этот класс существует только для исторической причины и в качестве аналога измененных стеков. Вместо неизменного стека вы можете просто использовать список.
И в немного больше деталей:
Неисключаемые стеки используются редко в программах Scala, потому что их функциональность включена в списки: A push
в неизменяемом стеке то же, что и ::
в списке, а pop
в стеке - то же, что и tail
on список.
Итак, чтобы ответить на ваши вопросы:
- Да, есть причина для его существования.
- Нет, вы не должны отдать предпочтение спискам.