2016-01-08 13 views
11

क्लोजर में यह बहुत आसान काम है, जिसे format कहा जाता है। यह आसानी से टेम्पलेट तारों की क्षमता के लिए जाना जाता है। फ़ंक्शन आमतौर पर अधिकांश प्रोग्रामिंग भाषाओं में उपलब्ध होता है।क्लोजर <> क्लोजरस्क्रिप्ट; उदाहरण: "प्रारूप" फ़ंक्शन

मैं यह जानने के लिए थोड़ा परेशान था कि क्लोजरस्क्रिप्ट इस फ़ंक्शन को लागू नहीं करता है। जहां तक ​​मैं शोध कर सकता था इसे पुराने संस्करणों में लागू किया गया था लेकिन नवीनतम में फ़ंक्शन नहीं है।

कोई भी जानता है कि इसके लिए कोई कारण है या नहीं?

+1

मैंने सोचा होगा कि क्लोजरस्क्रिप्ट में 'clojure.pprint/cl-format' उपलब्ध होगा। यह क्लोजर के जावा-आधारित 'प्रारूप' का विकल्प है। मैंने एक त्वरित परीक्षण में किया, क्लोजरस्क्रिप्ट में 'clojure.pprint' उपलब्ध नहीं प्रतीत होता था, लेकिन मुझे नहीं पता कि यह क्यों नहीं होगा। – Mars

+1

यदि मुझे सही ढंग से याद है, तो cl-format cljurescript – leetwinski

उत्तर

12

एक संबंधित jira टिकट पर This comment उपयोगी हो सकता है:

इस एक बाहर का बैकअप, goog.string.format उन्नत अनुकूलन खारिज कर देता है और यह Clojure के प्रारूप की क्षमताओं के कुछ प्रदान करता है - जो की वजह से एक बहुत करता है java.util.Formatter। मंथन के लिए माफ़ी, लेकिन यह लोगों के लिए वास्तव में वितरित करने वाली छोटी कार्यक्षमता के लिए खुद को पंसद करना एक साधारण बात है।

+0

में cljs.pprint नामस्थान में है और इसके बजाय अन्य उत्तर देखें ('goog.string.format') – Joaquin

10

format क्लोजरस्क्रिप्ट में मौजूद है। यह Google क्लोजर लाइब्रेरी (जीसीएल) से आता है, जो क्लोजरस्क्रिप्ट का एक मौलिक हिस्सा है। दुर्भाग्य से इसका उपयोग करना मुश्किल हो सकता है। परंपरागत तरीका [goog.string :as gstring] और [goog.string.format] दोनों की आवश्यकता है, और फिर नामस्थान gstring.format को नियोजित करने के लिए। उदाहरण के लिए:

(ns rostering.components.services 
    (:require 
    [goog.string :as gstring] 
    [goog.string.format])) 

(str "$" (gstring/format "%.2f" 2.5)) 

सुंदर ज्यादा एक ही उदाहरण documentation के इस छोटे से पृष्ठ के तल पर है।

मैं यह नहीं कह सकता कि क्लोजरस्क्रिप्ट का एक हिस्सा जीसीएल कितना है। यहां another reference है। इसका मतलब है कि format एक ऐसा फ़ंक्शन है जो क्लोजरस्क्रिप्ट का हिस्सा है।

यहाँ कि संदर्भ से एक उद्धरण है:

गूगल बंद लाइब्रेरी गूगल द्वारा विकसित एक जावास्क्रिप्ट पुस्तकालय, एक मॉड्यूलर वास्तुकला पर आधारित है और डोम जोड़तोड़ और घटनाओं, ajax और JSON के लिए क्रॉस-ब्राउज़र कार्यों प्रदान करता है, अन्य सुविधाओं के बीच।

यह विशेष रूप से क्लोजर कंपाइलर का लाभ लेने के लिए लिखा गया है (जिसे क्लोजरस्क्रिप्ट कंपाइलर द्वारा आंतरिक रूप से उपयोग किया जाता है)।

और क्लोजरस्क्रिप्ट क्लोजर कंपाइलर और क्लोजर लाइब्रेरी पर बनाया गया है। वास्तव में, क्लोजरस्क्रिप्ट नामस्थान क्लोजर मॉड्यूल हैं।

+0

क्या आपकी कोई आखिरी पंक्ति सिर्फ' (gstring/प्रारूप "$%। 2 एफ" 2.5) '? – gfredericks

+0

प्रारूप फ़ंक्शन का पहला तर्क 'प्रारूप स्ट्रिंग' है। '%' '%' के विपरीत, 'प्रारूप स्ट्रिंग' का हिस्सा नहीं है। –

+0

यह प्रारूप स्ट्रिंग का हिस्सा क्यों नहीं हो सकता है? यह बस ऐसा करने के लिए एक आसान तरीका लगता है। – gfredericks

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