我對某些代碼進行了更改,它的速度提高了4.5倍。我想知道爲什麼。它曾經是本質:爲什麼headOption更快
def doThing(queue: Queue[(String, String)]): Queue[(String, String)] = queue match {
case Queue((thing, stuff), _*) => doThing(queue.tail)
case _ => queue
}
,我把它改成這個獲得巨大的速度提升:
def doThing(queue: Queue[(String, String)]): Queue[(String, String)] = queue.headOption match {
case Some((thing, stuff)) => doThing(queue.tail)
case _ => queue
}
是什麼_*
做,爲什麼它如此昂貴相比headOption?
這是可變的'隊列'還是不可變的? – huynhjl
@huynhjl,不可變 – kelloti
什麼是您的編譯器版本? – senia