Привет, я пытаюсь выскочить из верхнего элемента в стеке в некотором коде Scala, который я пишу, но функция pop
для встроенного класса Stack возвращает весь Stack минус верхний элемент, а это не то, что яПосле.
Также кажется, что рекомендуемый способ реализации стека в Scala - использовать List
, а затем использовать tail
и ::
как pop
и push
. tail
также возвращает список минус «верхний» элемент.
Как это сделать, чтобы элемент был возвращен и мог быть сохранен в переменной?
EDIT
У меня есть этот код, чтобы продемонстрировать, что происходит:
sealed trait Symbol {
def withType(): String
def withValue(): String
}
class Lexer extends LexerTokeniser[Symbol] {
case class Element(typeOf: String, value: String) extends Symbol {
override def withType(): String = typeOf
override def withValue(): String = value
}
private val controlStack = Stack[Element](Element("String", "s"))
val topEl = controlStack.pop // This sets topEl to type Stack[Element]
val newTopEl = topEl.withValue() // This is an error, no such function
}