सबसे पहले, कृपया मेरे प्रश्न के शीर्षक को सही करने के लिए स्वतंत्र महसूस करें, मैं कार्यात्मक-प्रोग्रामिंग लिंगो से बहुत परिचित नहीं हूं।स्कैला - 'प्रथम श्रेणी के कार्यों' का आह्वान करने के उपर
मेरा सवाल यह है कि, 'चर की सामग्री' के रूप में कार्य करने के लिए कोई ओवरहेड (और यह कितना महत्वपूर्ण है) है। निम्नलिखित कोड में उदाहरण के लिए:
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