2013-02-22 120 views
6

मुझे इस कोड का उदाहरण स्केल में प्रोग्रामिंग मिला, दूसरा एड। (अध्याय 25, लिस्टिंग 25.11):सुपरलास नाम के बिना, स्केल ऑब्जेक्ट परिभाषा में "विस्तार {..}" खंड क्या करता है?

object PrefixMap extends { 
    def empty[T] = ... 

    def apply[T](kvs: (String, T)*): PrefixMap[T] = ... 

    ... 
} 

extends खंड वहाँ एक सुपर क्लास नाम के बिना क्यों है? ऐसा लगता है कि एक अज्ञात वर्ग का विस्तार, लेकिन किस उद्देश्य के लिए? साथ में पाठ इस इमारत को कहीं भी समझाता या यहां तक ​​कि उल्लेख नहीं करता है। कोड वास्तव में संकलित करता है और स्पष्ट रूप से इसके साथ या इसके बिना पूरी तरह से काम करता है।

ओटीओएच मुझे this (जो पुस्तक में अध्याय के मूल संस्करण की तरह दिखता है) सहित कई वेब पृष्ठों पर सटीक कोड मिला। मुझे संदेह है कि एक टाइपो इतने सारे पाठकों के रडार से नीचे हो सकता था ... तो क्या मुझे कुछ याद आ रहा है?

मैंने इसे Google पर करने का प्रयास किया, लेकिन इसके लिए उचित खोज शब्द खोजने के लिए भी संघर्ष किया। तो क्या कोई यह बता सकता है कि इस निर्माण में स्कैला में नाम और/या व्यावहारिक उपयोग है या नहीं?

+2

यह प्रारंभिक प्रारंभकर्ता है, जैसा कि "स्केल फॉर इंपैटेन्टेंट, पी 122, या गहराई में स्क्ला, पृष्ठ 71 –

उत्तर

3

मुझे एक प्रिंट त्रुटि की तरह लग रहा है। यह सब कुछ वही काम करेगा, हालांकि, इस बार शायद इसे छिपाने में मदद मिली।

वैसे भी, वह वस्तु संरचनात्मक प्रकार का विस्तार कर रही है, हालांकि यह शुरुआती प्रारंभिक भी हो सकती है, अगर आपके पास with XXX अंत में था। Mmmmm। यह किसी भी कक्षा या विशेषता के बाद प्रारंभिक प्रारंभिक की तरह दिखता है, वास्तव में ... संरचना प्रकारों में कोड नहीं होता है, मुझे लगता है।

+0

में भी समझाया गया है, साथ ही संरचनात्मक प्रकारों के साथ 'विस्तारित' कीवर्ड का उपयोग नहीं किया जाता है, है ना? कम से कम नहीं उदाहरण मैंने पीआईएस 2 में पाया। –

+0

@ पीटररोक आप एक संरचनात्मक प्रकार का विस्तार कर सकते हैं, लेकिन एक विशेषता या कक्षा एक संरचनात्मक प्रकार का विस्तार कर सकती है, जो भी लायक है। –

+0

संदर्भ के लिए, [यहां आपका स्वयं का जवाब है] (http: // stackoverflow प्रारंभिक प्रारंभकर्ताओं के बारे में .com/प्रश्न/4712468/इन-स्कैला-क्या-प्रारंभिक प्रारंभकर्ता # 4716273)। –