首先,请随时纠正我的问题的标题,我不太熟悉函数式编程术语。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