2016-09-06 9 views
6

'केस' किसी विशेष स्थिति का एक उदाहरण है; 'होने वाला कुछ उदाहरण।क्यों केस क्लास को 'केस' नाम दिया गया है?

तो मेरा सवाल है - क्यों स्कैला 'केस' कक्षाओं को 'केस' के रूप में नामित किया जाता है? मुद्दा क्या है? यह 'मामला' क्यों है, न कि 'डेटा' वर्ग या कुछ और? उसमें 'केस' का क्या अर्थ है .. केस :)

+1

मुझे मुख्य रूप से लगता है क्योंकि उन्हें _pattern मिलान_ अभिव्यक्तियों में पैटर्न के रूप में उपयोग किया जा सकता है, उदा। 'myVal मैच {केस MyCaseClass (ए, बी) => ...} ', जहां प्रत्येक केस क्लास एक अलग _case _... –

+0

जो भी करीब के लिए मतदान करता है: मुझे नहीं लगता कि यह प्रश्न बहुत व्यापक है। – pedrofurla

+0

जाहिर है, एक केस क्लास डेटा फ़ील्ड का एक कंटेनर है, जिस तरह सूटकेस सूट का कंटेनर है। –

उत्तर

8

अन्य भाषाओं में case कीवर्ड का प्राथमिक उपयोग switch -statements जो ज्यादातर enum या इस तरह के रूप तुलनीय मूल्यों पर उपयोग किया जाता है में है int या string अलग अच्छी तरह से परिभाषित मामलों का प्रतिनिधित्व किया जा रहा:

switch (value) 
{ 
    case 1: // do x - 
    case 2: // do y - 
    default: // optional 
} 

स्केला में इन कक्षाओं में अक्सर एक अमूर्त वर्ग के विशिष्ट अच्छी तरह से परिभाषित संभव उदाहरणों का प्रतिनिधित्व करते हैं और उसी तरह जरूरी कोड में उपयोग किया जाता है यू सत्र match -clauses भीतर स्विच बयान: इस तरह के तरीके के रूप में

value match { 
    case Expr(lhs, rhs) => // do x 
    case Atomic(a) => // do y 
    case _ => // optional, but will throw exception if something cannot be matched whereas switch won't 
} 

मामले वर्गों के व्यवहार की ज्यादातर वे सुविधाजनक बनाने/इस तरह के बयानों में उनके उपयोग को सक्षम करने के उद्देश्य का निर्माण किया जा सकता है।

+0

जावा की समानता अब मेरे लिए पहली बार जावा स्विच प्राप्त करना मुश्किल बनाती है। मेरी इच्छा है कि कीवर्ड अलग-अलग हो, शायद 'मिलान' का पुन: उपयोग करें (जिसे उन्होंने एक विधि नाम के रूप में जीवन शुरू किया)। चूंकि मामले सिर्फ पैटर्न हैं, '{match p1 =>} '। संभवतः यह स्पष्ट होगा और एक कीवर्ड भी बचाएगा। उन्होंने ऐसा क्यों नहीं किया? (एनएल को शामिल करना मुश्किल हो सकता है, '{match p1 => x match आदि} ') –

1

ऐसा इसलिए है क्योंकि उनका उपयोग पैटर्न मिलान के लिए किया जा सकता है। अंग्रेजी उपयोग में केस का अर्थ संभावनाओं में से एक है; और यही पैटर्न आपके लिए मेल खाता है।

जैसे, "वहाँ तीन मामलों में हम यहाँ पर विचार करना चाहिए रहे हैं ..."

+0

वे पैटर्न मिलान के माध्यम से "काम नहीं करते" हैं, लेकिन पैटर्न मिलान में उपयोग किया जा सकता है। मध्यस्थ के उत्तर की अंतिम वाक्य एक बेहतर बेहतर फॉर्मूलेशन है। –

संबंधित मुद्दे