2013-04-02 4 views
6

मैं रीबोल 3 (पॉज़िक्स/फ़ैन/गणित) के लिए कुछ एक्सटेंशन पर काम कर रहा हूं।रीबोल, एक्सटेंशन और फ़ंक्शन नामकरण

वैश्विक नेमस्पेस प्रदूषण से बचने के लिए, मैं एक साधारण उपसर्ग स्रोत पहचानकर्ता के साथ कार्यों का निर्यात कर रहा हूं। उदाहरण के लिए: POSIX-FORKfork, या POSIX-NANOSLEEPnanosleep के लिए।

क्या कोई बेहतर दृष्टिकोण या आधिकारिक रेबोल नामकरण सम्मेलन है?

उत्तर

6

यह रेबोल निर्यात के लिए एक सुंदर मानक नामकरण सम्मेलन है, हालांकि वे पाठ्यक्रम के कोड में लोअरकेस होना चाहिए। चैट क्लाइंट या वेब साइट्स में फ़ंक्शंस का जिक्र करते समय सभी अपरकेस चीज सिर्फ एक नामकरण सम्मेलन है जो this जैसे कोड नहीं दिखा सकता है। आप आम तौर पर रीबोल कोड में किसी भी शब्द को अपरकेस नहीं करते हैं जब तक कि उन्हें किसी और चीज़ के लिए उपयोग नहीं किया जाता है।

हालांकि, यदि आप वैश्विक नेमस्पेस प्रदूषण से बचना चाहते हैं, तो options: [private] शीर्षलेख के साथ अपना एक्सटेंशन मॉड्यूल घोषित करें। इससे ऐसा होगा कि आपके मॉड्यूल के निर्यात केवल मॉड्यूल या स्क्रिप्ट द्वारा आयात किए जाते हैं जो उन्हें import या needs शीर्षलेख के साथ स्पष्ट रूप से अनुरोध करते हैं। यह विशेष रूप से मॉड्यूल या एक्सटेंशन के लिए जाता है जो कम-स्तरीय सी-जैसी एपीआई निर्यात करते हैं, जो केवल उच्च-स्तरीय रैपर को लागू करने वाले मॉड्यूल द्वारा आयात किए जाते हैं। यह याद रखना अच्छा है कि विस्तार का मॉड्यूल हिस्सा एक पूर्ण रीबोल मॉड्यूल है, और यह आपके उच्च स्तरीय रैपर कोड को वहां रखना सबसे अच्छा होता है और सी-जैसे कार्यों को आंतरिक उपयोग के लिए रखते हुए, बिल्कुल भी निर्यात नहीं करता है।

एक अतिरिक्त चाल यह है कि जब आप स्थिरांक या enum मान निर्यात कर रहे हैं, तो उन्हें अपने मॉड्यूल में किसी ऑब्जेक्ट में रखना और ऑब्जेक्ट को इसके बजाय निर्यात करना सबसे अच्छा है। इस तरह आप वैश्विक नामस्थान में निर्यात नहीं करते हैं और आप शब्दों को संशोधन से सुरक्षित कर सकते हैं।

एक और चाल सामानों को निर्यात नहीं करना है और लोगों को import फ़ंक्शन का उपयोग करके अपना मॉड्यूल आयात करना है। जब तक आप अपने मॉड्यूल के शब्दों को छिपे हुए नहीं चिह्नित करते हैं, तब भी वे तब भी उपलब्ध होंगे जब वे निर्यात नहीं किए जाते हैं। हालांकि ज्यादातर मामलों में यह थोड़ा असुविधाजनक है, इसलिए इसके बजाय एक निजी मॉड्यूल का उपयोग करना बेहतर है। आप अपने उच्च स्तरीय एपीआई और को अपने निम्न-स्तरीय एपीआई को निर्यात भी कर सकते हैं, इसलिए निम्न स्तर के एपीआई आयात करने के लिए उपलब्ध है अगर कोई इसका उपयोग करना चाहता है।

कैसे मॉड्यूल और एक्सटेंशन उपयोग किया जाता है के बारे में अधिक गहन जवाब के लिए यहाँ देखें: How are words bound within a Rebol module?

+0

स्पष्टीकरण के लिए धन्यवाद, अपने लिंक अच्छी तरह से लिखा गया है और एक अच्छा पढ़ा है। – TomBon

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