2010-05-18 11 views
11

मैं स्कैला के लिए जोडाटाइम या जेएसआर 310 के समान कुछ ढूंढ रहा हूं जो ऑपरेटर ओवरलोडिंग जैसी अच्छी स्कैला फीचर्स का लाभ उठाता है और निहित रूपांतरणों पर निर्भर नहीं है (मुझे निहित रूपांतरणों का एक तर्कहीन डर है)।क्या स्कैला के लिए कोई अच्छी तिथि/समय एपीआई उपलब्ध है?

मुझे http://github.com/jorgeortiz85/scala-time के बारे में पता है, लेकिन यह सिर्फ जौडाटाइम को implicits के साथ पंप करता है।

+0

आप कुछ जो <, > ऑपरेटरों प्रदान करता है के लिए देख रहे हैं? –

+4

मेरा सुझाव है कि आप निहित रूपांतरणों के अपने तर्कहीन डर से छुटकारा पाएं। ;-) – Jesper

+0

@ टिमो - मैं + और शून्य जैसी चीज़ों के साथ तुलना संचालन करना चाहता हूं। @ जेस्पर - डर पूरी तरह से तर्कहीन नहीं है। Implicits एक प्रदर्शन हिट है। वे समानता जैसी चीज़ों के साथ अजीब बातचीत को प्रेरित कर सकते हैं। वे प्रकार के अनुमान पर भरोसा करते हैं, और मुझे बहुत सारी चीज़ें मिलती हैं जो प्रकार की अनुमान पर भरोसा करती हैं पूर्ण भ्रम के लिए एक अच्छी नुस्खा है। –

उत्तर

3

निहित रूपांतरणों में कुछ भी गलत नहीं है। भले ही जावा लाइब्रेरी का अंतर्निहित तर्क के लिए उपयोग नहीं किया गया हो, फिर भी किसी भी समझदार रूप से डिज़ाइन की गई शुद्ध स्कैला लाइब्रेरी अभी भी इम्प्रिकिट्स का उपयोग करेगी, जिससे आप 5.days + 3.minutes जैसे भाव लिख सकते हैं।

सभी implicits समान रूप से बनाए गए नहीं हैं, एक पूर्ण विशिष्ट प्रकार के रूप में परिवर्तित होने वाला एक अंतर्निहित जो आपके पास पूर्ण नियंत्रण है, लगभग निश्चित रूप से सुरक्षित है।

जैसा कि अन्य ने पहले से ही कहा है, ऐसे मामलों को ज्यादातर मामलों में अनुकूलित किया जाएगा, खासकर बचने के विश्लेषण के साथ, इसलिए उन्हें चिंता करने न दें!

जब तक जेएसआर 310 को अंतिम रूप दिया गया है, तो जोडा-टाइम सबसे अच्छा है जिसे आप प्राप्त करने जा रहे हैं।

जावा नामकरण सम्मेलनों का पालन करने और ऑपरेटर ओवरलोडिंग की कमी के अलावा, जोडा-टाइम पहले से ही बेवकूफ स्काला के लिए एक बहुत अच्छा फिट है। यह प्रकृति प्रकृति में बहुत ही कार्यात्मक है, विशेष रूप से जिस तरह से यह अपरिवर्तनीयता को गले लगाती है, इसलिए स्कालज-टाइम वास्तव में पुस्तकालय के चारों ओर केवल एक बहुत ही पतला आवरण है।

आपको यह भी लाभ मिलता है कि उपलब्ध होने पर जेएसआर 310 का उपयोग करने के लिए स्केलज-टाइम को आसानी से अपग्रेड किया जा सकता है, इसलिए उस समय आपके कोड को माइग्रेट करना बहुत कम दर्दनाक होगा।

2.8 के बाद से, स्केला समय नाम दिया गया है scalaj समय: http://github.com/scalaj/scalaj-time

+1

मैं कल्पना कर सकता हूं कि स्कैला के जेओडीटाइम रैपर से स्कैला के जेएसआर 310 रैपर तक जाने से उन चीजों को सीधे (या जावा में) उपयोग करने से बहुत कम दर्द होगा। मज़ेदार होगा अगर निर्यात को बदलना और कुछ वर्ग नामों को ठीक करना पर्याप्त होगा :-) – soc

+0

लागू रूपांतरण, रैपिंग के ऊपर इंडिकेशन की अर्ध-छिपी परत जोड़ते हैं। यह जटिलता और रनटाइम ओवरहेड दोनों जोड़ता है। उनके साथ एक विशेषता के रूप में कुछ भी गलत नहीं है, लेकिन कभी-कभी उनका उपयोग मुफ्त तरीके से किया जाता है। –

+0

क्या यह एक नग्न पूर्णांक को कई मिनटों में परिवर्तित करने के लिए gratuitous है? –

संबंधित मुद्दे