मैं सिर्फ अनुमान लगा रहा हूं क्योंकि मैं कोई स्केल विशेषज्ञ नहीं हूं लेकिन स्केल में किसी भी वर्ग के लिए documentation के अनुसार मैं सोच रहा हूं कि चूंकि शून्य शून्य नहीं है, यह किसी से और जैसा नहीं है ऐसा पहले सूचीबद्ध मामले से मेल नहीं खाता है।
नीचे कोड नमूना जोड़ना। यह दौड़ते समय "कुछ और" प्रिंट करता है।
val x = (2, null)
x match {
case (i:Int, v:Any) => println("got tuple %s: %s".format(i, v))
case (i:Int, null) => println("something else %s".format(i))
case _ => println("catch all")
}
और अधिक शोध करने के बाद ऐसा लगता है अशक्त की तरह किसी भी भावना के साथ मैच चाहिए documentation कहना है कि यह AnyRef जो किसी भी फैली फैली हुई है।
संपादित करें: हर किसी की तरह कहा है। पहला मामला उद्देश्य पर शून्य से मेल नहीं खाता है। यह प्रलेखन में निर्दिष्ट है।
स्रोत
2010-01-08 01:19:00
मुझे लगता है कि इस विकल्प के लिए प्रेरणा यह है कि यह JVM पर "exampleof" बाइटकोड के व्यवहार से मेल खाता है। –
वह, और नल के माध्यम से पूरी तरह से चूसना होगा। प्रेरणा की तलाश में जाने के लिए आपके पास एक अश्लील शून्य सहनशीलता होनी चाहिए! – extempore
"अश्लील शून्य सहनशीलता" या नहीं, एक तर्क है कि एक प्रकार के पैटर्न "एक्स: टी" के लिए सबसे प्राकृतिक और सरल अर्थ टाइप टी के किसी भी सदस्य से मेल खाना है। उदाहरण के लिए, यह अनियमितताओं से बच जाएगा जैसे "val x: Any = शून्य "- ठीक है, लेकिन" वैल (एक्स: कोई, वाई: कोई भी) = (शून्य, शून्य) "- MatchError। वह "पूरी तरह से बेकार" भी है। मैं यह नहीं कह रहा हूं कि स्कैला ने गलत विकल्प बनाया है, न ही यह विशेष रूप से महत्वपूर्ण है कि मूर्खतापूर्ण स्कैला शून्य का उपयोग करने से बचाता है। –