मैं अब देखते हैं कि वहाँ एक संबंधित सवाल पूछ क्या इन ऑपरेटरों (<: <, <% <, =: =) है कि यहां कार्य करें:<: <, <% <, =: = कंपाइलर में काम का स्केल कार्यान्वयन वास्तव में कैसे करता है?
What do <:<, <%<, and =:= mean in Scala 2.8, and where are they documented?
लेकिन मैं अभी भी उनके क्रियान्वयन के बारे में उलझन में हूँ। विशेष रूप से, मुझे लगता है कि एक बार जब आप एक अंतर्निहित पैरामीटर डालते हैं जो एक विशेष संबंध का दावा करता है, तो आप चर का उपयोग कर सकते हैं जैसे कि वे स्वचालित रूप से ठीक से डाले गए हैं, उदा। यह संकलित होगा:
class Foo[T](a: T) {
def splitit(implicit ev: T <:< String) = a split " "
}
लेकिन यह वास्तव में संकलक में कैसे काम करता है? क्या इन ऑपरेटरों के लिए कुछ जादू कंपाइलर समर्थन है, और यदि नहीं, तो अंतर्निहित तंत्र क्या है जो इसे परिभाषा से इस प्रकार के रिश्ते को कम करने की अनुमति देता है? (क्या यह तंत्र विशेष रूप से इन ऑपरेटरों को काम करने की अनुमति देने के लिए जोड़ा गया था, और इन विशेष ऑपरेटरों के लिए यह कितना विशिष्ट है?) ऐसा लगता है कि आप इस तरह के एक अतिरिक्त निहित पैरामीटर डाल सकते हैं जो कि किसी प्रकार के कंपाइलर की व्याख्या को किसी भी तरह बदलता है।
उनके लिए स्रोत https://github.com/scala/scala/blob/v2.9.2/src/library/scala/Predef.scala#L394 – pedrofurla