2010-08-29 12 views

उत्तर

22

स्काला में स्थिर-चेक करने योग्य बहुरूपता को प्राप्त करने के लिए बुनियादी उपकरण हैं

  • Subtyping (दलदल की मानक OO बहुरूपता)
  • प्रकार parameterization
  • स्व टाइपिंग (बहुरूपी विचरण और बाधाओं की अनुमति देता है) (OO polymorphism के प्रतिबंध और विशेषज्ञता की अनुमति देता है)
  • लागू रूपांतरण (पोस्ट-फैक्टो पॉलीमोर्फिक निर्माण की अनुमति देता है)
  • संरचनात्मक टाइपिंग (पॉली की अनुमति देता है आकारिता सुविधाओं पर आधारित है, न कि प्रकार की तुलना में)
  • जनरल प्रकार सीमा (अनुमति बहुरूपता पर बेहद सटीक की कमी)
  • पैटर्न मिलान की इजाजत दी (डेटा संरचना, सार डेटा प्रकार के समान)
  • उच्च kinded प्रकार के आधार पर बहुरूपता की अनुमति देता है (पॉलिमॉर्फिक निर्माण पर बहुलकता की अनुमति)

इन सभी 'विकल्पों' को कॉल करना शायद गलत शब्द है, क्योंकि वे बहुत अच्छी तरह से एकीकृत हैं। कुछ पॉलिमॉर्फिक एल्गोरिदम के संयोजन के साथ इन उपकरणों में से कई का उपयोग करके व्यक्त किया जाना असामान्य नहीं है।

स्कैला पॉलिमॉर्फिज्म में समझ के स्थान को ध्यान में रखना भी उचित है। समझ के लिए विशेष रूप से polymorphic प्रतीत नहीं होता है। सतह के नीचे, समझने के लिए फ़िल्टर/मानचित्र/flatMap पर कॉल के लिए सिंटैक्टिक चीनी होती है, और उन तरीकों के कार्यान्वयन अत्यधिक बहुलक होते हैं। इस प्रकार, तुलनात्मक रूप से सरल-लूप के लिए क्या दिखने के परिणामस्वरूप कुछ वास्तव में प्रभावशाली बहुलक प्रभाव हो सकते हैं।

+3

यह पर से "के रूप में मूल्य की सुविधाओं के आधार पर" संरचनात्मक टाइपिंग वर्णन करने के लिए "[मूल्य की] व्यवहार," के बाद से व्यवहार प्रकार प्रणाली के नजरिए से एक अपारदर्शी संपत्ति है शायद ज्यादा सटीक है। –

+2

मुझे आपकी सूची में "उच्च प्रकार के प्रकारों के लिए समर्थन" याद आती है, जो स्कैला की सबसे शक्तिशाली सुविधाओं में से एक है। मुझे लगता है कि सबसे अच्छा संदर्भ अभी भी एड्रियन मूरर्स का पेपर है: http://people.cs.kuleuven.be/~adriaan.moors/files/higher.pdf – Landei

+1

उत्कृष्ट टिप्पणियां। संपादन। –

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