यहाँ में एक फ़ाइल एक्सटेंशन को बदलने के लिए एक संस्करण का उपयोग कर विभाजन लिखा है foo.bar.coffee
foo.bar.js
में।स्काला अभिव्यक्ति एक स्ट्रिंग
मैं क्या पसंद:
- यह काम करता है
- यह
indexOf()
- यह कार्यात्मक लगता है जैसे चीजों पर निर्भर नहीं करता;)
मैं क्या पसंद नहीं है:
- यह उतना छोटा नहीं है जितना मैं आशा करता हूं कि
- यह कुछ पाठकों
भ्रमित कर सकते हैं मैं एक और भी आसान/सरल संस्करण कैसे लिख सकता है?
अद्यतन: नीचे दिए गए महान उत्तर! संक्षेप में:
- बुरा नहीं थी, हालांकि यह कुछ कोने मामलों को कवर नहीं करता ऊपर अपने मूल दृष्टिकोण की तरह लगता है, लेकिन है कि यदि आप उन
- एक और कवर करने के लिए की जरूरत है, थोड़ा कम दृष्टिकोण एक लंबे समय तक अभिव्यक्ति के साथ सुधारी जा सकने वाली है regexps, जो आपके regexp पृष्ठभूमि पर कम या ज्यादा पठनीय आधार पर नहीं किया जा सकेगा
मूल दृष्टिकोण के लिए एक से थोड़ा कम वाक्य रचना (कोने मामलों में शामिल नहीं) पढ़ता है:
fileName.split('.').init :+ "js" mkString "."
रिकॉर्ड के लिए है के साथ काम lastIndexOf के साथ बहुत आसान है, और, यह मेरे लिए बहुत सरल है। –
मैं राफे से सहमत हूं। मैं व्यक्तिगत रूप से नियमित अभिव्यक्ति संस्करणों से बेहतर पसंद करता हूं। हालांकि, यह फ़ाइल नामों के साथ अच्छी तरह से काम नहीं करता है जिसमें कोई एक्सटेंशन नहीं है। आप '++ सेक (" जेएस ") से इसे ': +" जेएस "' के साथ बदलकर, से छुटकारा पा सकते हैं। – Madoc
ध्यान रखें कि आप जो करना चाहते हैं उसके आधार पर, डबल एक्सटेंशन वाले फाइलों को "सही" नहीं माना जाता है, उदा। 'x.tar.gz'' x.tar.js' – Raphael