बाइटकोड स्तर पर लागू स्कैला में पैटर्न मिलान कैसे है?बाइटकोड स्तर पर लागू स्कैला में पैटर्न मिलान कैसे है?
क्या यह if (x instanceof Foo)
संरचनाओं की एक श्रृंखला की तरह है, या कुछ और? इसके प्रदर्शन प्रभाव क्या हैं?
उदाहरण के लिए, निम्नलिखित कोड दिया गया है (Scala By Example पृष्ठ 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)
}
पीएस मैं जावा बाइटकोड पढ़ सकता हूं, इसलिए बाइटकोड प्रतिनिधित्व मेरे लिए काफी अच्छा होगा, लेकिन शायद अन्य पाठकों के लिए यह बेहतर होगा कि यह जावा कोड जैसा कैसा लगेगा।
पी.पी.एस. क्या पुस्तक Programming in Scala स्कैला को कार्यान्वित करने के तरीके के बारे में और इसी तरह के प्रश्नों का उत्तर देती है? मैंने किताब का आदेश दिया है, लेकिन यह अभी तक नहीं पहुंचा है।
आप उदाहरण को संकलित क्यों नहीं करते हैं और जावा बाइटकोड डिस्सेबलर के साथ इसे अलग करते हैं? – Zifre
मैं शायद ऐसा करूंगा, जब तक कि कोई पहले कोई अच्छा जवाब न दे। लेकिन अभी मैं कुछ नींद लेना चाहता हूं। ;) –
प्रश्न अन्य पाठकों के लिए उपयोगी है! – djondal