मेरे पास स्कैला में एक विधि है जो एक ट्यूपल देता है, मान लीजिए कि विधि को 'टेस्ट' कहा जाता है। तब मैंएक अपरकेस चर में पैटर्न कैसे मिलान करें?
val (X,Y) = test()
करने के लिए हालांकि चाहते हैं, पैटर्न मिलान केवल स्काला में काम करता है जब चर नाम लोअरकेस कर रहे हैं, अर्थात्:
val(_X,_Y) = test(); val X = _X; val Y = _Y
... ठीक काम करता है, लेकिन बदसूरत है, और नहीं संक्षिप्त। चूंकि एक्स और वाई matrices हैं, मैं वास्तव में लोअरकेस चर का उपयोग नहीं करना चाहता। (Scipy और matlab में, मैं उदाहरण के लिए इस तरह के प्रतिबंध नहीं होगा)।
मुझे लगता है कि यह सुनिश्चित करने के लिए कुछ तरीका है कि लोअरकेस वैरिएबल अपरकेस वाले लोगों की तरह व्यवहार करते हैं, यानी 'x` कर रहे हैं। शायद अपरकेस चर बनाने के कुछ तरीके को लोअरकेस वाले की तरह व्यवहार करना है? तो, यह मेरा सवाल है: क्या स्काला में सीधे अपरकेस चर में मिलान पैटर्न का कोई तरीका है?
मुझे लगता है कि ऐसी भाषा के बारे में कुछ अजीब बात है जो आपको भाषा की खोज के पहले 20 घंटों के लिए अपरकेस वैरिएबल नामों का उपयोग करने देती है, फिर अचानक एक छोटे से छोटे, लेकिन उपयोगी, उपयोग के लिए, अचानक यह तय करता है कि, नहीं, अपरकेस चर , अनुमति नहीं हैं! –
@ ह्यूगर्किन्स मैं उससे सहमत हूं। और यह भी गड़बड़ हो जाता है: स्कैला आपको स्थिरांक पर पैटर्न-मिलान करने की अनुमति देता है, जिसे ऊपरी-केस नामों वाले चर के रूप में परिभाषित किया जाता है।कुछ 'वैल मायकॉन्स्ट = "टेक्स्ट" की तरह; कुछ स्ट्रिंग मैच {केस MyConst => ...; ...} '। यह बहुत भ्रम का कारण बनता है। सबसे समझदार नियम केवल शीर्ष-स्तरीय स्थिरांक के लिए ऊपरी-केस का उपयोग करना है और अन्य सभी स्थानों पर लोअर-केस का उपयोग करना है। –
ठीक है, ठीक है, किसी ने भी प्रश्न का सकारात्मक उत्तर प्रदान नहीं किया है, इसलिए मैं आपके उत्तर को अभी उत्तर के रूप में चिह्नित करूंगा, खासकर जब आपने कुछ रचनात्मक विचार प्रदान किए हैं कि इस प्रकार को निर्दिष्ट करने में सक्षम होने की कमी के आसपास कैसे काम करना है स्केल में एक चर के (स्थिर बनाम चर)। –