खोज…


वाक्य - विन्यास

  • विशेषता प्रकार {selfId => / अन्य सदस्यों का उल्लेख कर सकते selfId मामले में this का मतलब है कुछ /}
  • विशेषता प्रकार {selfId: OtherType => / * अन्य सदस्यों का उपयोग कर सकते selfId और यह प्रकार का हो जाएगा OtherType * /
  • विशेषता प्रकार {selfId: OtherType2 => / * के साथ OtherType1 selfId प्रकार का है OtherType1 और OtherType2 * /

टिप्पणियों

अक्सर केक पैटर्न के साथ उपयोग किया जाता है।

सरल स्व प्रकार उदाहरण

स्व-प्रकार का उपयोग लक्षण और वर्गों में किया जा सकता है जो कि मिश्रित वर्गों पर अवरोधों को परिभाषित करने के लिए किया जाता है। यह भी के लिए एक अलग पहचानकर्ता उपयोग करना संभव है this इस वाक्य रचना (उपयोगी एक आंतरिक वस्तु से संदर्भित किया जा करने के लिए जब बाहरी वस्तु है) का उपयोग कर।

मान लें कि आप कुछ वस्तुओं को संग्रहीत करना चाहते हैं। उसके लिए, आप भंडारण के लिए इंटरफेस बनाते हैं और एक कंटेनर में मान जोड़ते हैं:

 trait Container[+T] {
   def add(o: T): Unit
 }

 trait PermanentStorage[T] {
   /* Constraint on self type: it should be Container
    * we can refer to that type as `identifier`, usually `this` or `self`
    * or the type's name is used. */
   identifier: Container[T] =>

   def save(o: T): Unit = {
     identifier.add(o)
     //Do something to persist too.
   }
 }

इस तरह से वे एक ही वस्तु पदानुक्रम में नहीं हैं, लेकिन PermanentStorage Container लागू किए बिना लागू नहीं किया जा सकता है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow