जब एक sortable डेटा संरचना को लागू करने, मैं इस तरह कुछ करने का सोच रहा था:प्रकार पैरामीटर टी आदेश से घिरा [टी]
trait MaxHeap[T <: Ordering[T]] {
def insert(e: T): Unit
...
}
लेकिन उस MaxHeap [इंट] की तरह प्रकार के लिए काम नहीं करेंगे। मानक संग्रह पुस्तकालय में, संग्रह का तत्व प्रकार टी बाध्य नहीं है। इसके बजाए, तरीकों के लिए एक अंतर्निहित प्रदान किया जाता है ताकि इसे टी टू ऑर्डरिंग [टी] में परिवर्तित किया जा सके, उदा।
trait Seq[+A] extends ... {
// it's Ordering[B], not Ordering[A], but the idea is the same.
def max[B >: A](implicit cmp: Ordering[B]): A
}
मेरा प्रश्न है, अगर वहाँ मेरी कक्षा/विशेषता में कई तरीके तुलना को शामिल कर रहे हैं, वहाँ वर्ग/विशेषता के तत्व प्रकार निर्दिष्ट करने के लिए तुलनीय होने के लिए इतना है कि मैं उन लोगों के लिए implicits घोषित करने के लिए की जरूरत नहीं है एक तरीका है तरीकों?
धन्यवाद @ पीटर। लेकिन इस तरह 'टी' तुलनीय होने के लिए लागू नहीं किया गया है जैसे कि यह टाइप पैरामीटर सूची में बाध्य था। कोई भी 'टी' करेगा, बशर्ते एक निहित दिया गया हो। – cfchou
'ऑर्डरिंग [_>: टी]' एक ऐसी तकनीक है जिसे मैंने पहले नहीं देखा है। लेकिन मुझे आश्चर्य है कि 'ऑर्डरिंग [टी]' का उपयोग क्यों नहीं करें। 'ऑर्डरिंग' इम्प्लिकिट्स द्वारा अप्रत्यक्ष रूप से प्रदान किए गए सुविधाजनक ऑपरेटर 'ऑर्डर' के साथ काम नहीं कर रहे हैं 'ऑर्डरिंग [_>: टी] '। – cfchou
@cfchou मैं आपकी टिप्पणियों को हल करने के लिए उत्तर अद्यतन करता हूं। –