स्केला में पैटर्न मिलान किस प्रकार बाइटकोड स्तर पर लागू किया जाता है?
क्या यह if (x instanceof Foo)
निर्माणों की एक श्रृंखला की तरह है , या कुछ और है? इसके प्रदर्शन के निहितार्थ क्या हैं?
उदाहरण के लिए, निम्न कोड ( उदाहरण के लिए स्कैला से पृष्ठ 46-48) को eval
देखते हुए, विधि के लिए समकक्ष जावा कोड कैसा दिखेगा?
abstract class Expr
case class Number(n: Int) extends Expr
case class Sum(e1: Expr, e2: Expr) extends Expr
def eval(e: Expr): Int = e match {
case Number(x) => x
case Sum(l, r) => eval(l) + eval(r)
}
PS मैं जावा बाइटकोड को पढ़ सकता हूं, इसलिए मेरे लिए एक बायटेकोड प्रतिनिधित्व काफी अच्छा होगा, लेकिन शायद अन्य पाठकों के लिए यह जानना बेहतर होगा कि यह जावा कोड के रूप में कैसा दिखेगा।
पीपीएस क्या स्काला में प्रोग्रामिंग करने वाले इस का जवाब देते हैं और इसी तरह के सवालों के बारे में बताते हैं कि स्काला कैसे लागू किया जाता है? मैंने पुस्तक का आदेश दिया है, लेकिन यह अभी तक नहीं आया है।