में प्रत्यारोपण के माध्यम से "मुक्केबाजी" आदिम प्रकारों के ओवरहेड का मानना है कि मैं जावा Date
जैसी कक्षा बनाना चाहता हूं।स्कैला
type PrimitiveDate = Long
तो फिर तुम निहित का उपयोग करके तरीकों जोड़ सकते हैं: इसका एकमात्र डेटा सदस्य एक लंबे जो 1970
के बाद से मिलीसेकंड का प्रतिनिधित्व करता है/यह सिर्फ एक नया स्काला प्रकार बनाने के किसी भी प्रदर्शन लाभ के हो सकता है चाहेंगे है रूपांतरण, जैसे यह RichInt
के साथ int के लिए किया जाता है। क्या इस समृद्ध वर्ग में आदिम प्रकार के "मुक्केबाजी" में कोई ओवरहेड (वर्ग निर्माण) शामिल है? मूल रूप से आप सिर्फ एक स्थिर विधि
def addMonth(date: PrimitiveDate, months: Int): PrimitiveDate = date + 2592000000 * months
है और यह जब d addMonth 5
अपने कोड के अंदर प्रकट होता है लागू करने के लिए है कि प्रकार प्रणाली आंकड़ा बाहर जाने सकता है।
संपादित
ऐसा लगता है कि आप type PrimitiveDate = Long
लिख कर बनाने उर्फ स्केला संकलक द्वारा लागू नहीं की है। एक उचित वर्ग बना रहा है, लांग को घेर रहा है, स्कैला में एक लागू प्रकार बनाने का एकमात्र तरीका है?
आदिम प्रकारों के लिए एक लागू प्रकार उपनाम बनाने में सक्षम होने पर आप कितना उपयोगी मानते हैं?
"लागू एलियास" पर अच्छा बिंदु। यह एक बात थी जिसके बारे में मैं सोच रहा था। तो स्केल में एक प्राचीन प्रकार के लिए उचित प्रकार उपनाम बनाने का कोई तरीका नहीं है? – ziggystar
@ziggystar - नहीं है। मैं दो चीजों में से एक के लिए टाइप उपनाम का उपयोग करता हूं: केविन की निजी आंतरिक सामग्री नीचे की बात करती है; पैकेज ऑब्जेक्ट आयात (यानी 'सूची' अभी भी 'स्कैला' पैकेज में क्यों प्रतीत होता है) –
मुझे लगता है कि माइल्स सबिन एक सुरुचिपूर्ण और कलाकार [समाधान] (https://gist.github.com/milessabin/89c9b47a91017973a35f) के साथ आया था। इस सवाल के 11 महीने बाद पूछा गया। – itsbruce