Прежде всего, пожалуйста, не стесняйтесь исправить заголовок моего вопроса, я не слишком знаком с жаргоном функционального программирования.
. У меня вопрос, есть ли какие-либо накладные расходы (и насколько они значительны) при рассмотрении функций как «содержимого переменных». Например, в следующем коде:
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 ....
.
.
.
}
}
}
, но будет ли он работать хуже? (Очевидно, это займет больше памяти из-за карты)
Спасибо за любой ответ!