首先,請隨時糾正我的問題的標題,我不太熟悉函數式編程術語。Scala - 調用'頭等函數'的開銷
我的問題是,是否存在將函數當作'變量內容'的任何開銷(以及它的重要性)。例如,在下面的代碼:
class Processor {
val map = Map[Class[_],AnyRef => Something](...)
def process(c:AnyRef):Something = map(c.getClass)(c)
def worksFor:List[Class[_]] = map.map(_._1)
}
是非常好的,比起:
class Processor {
def worksFor = List(classOf[Bears], classOf[Beets], classOf[BattlestarGalactica])
def process(c: AnyRef) = {
c match {
case c: Bears ....
.
.
.
}
}
}
但它執行任何惡化? (顯然它會佔用更多的內存,因爲地圖)
感謝您的任何回答!
感謝您的詳細解答。我很高興我可以使用第一個選項,然後:) – Arg