मेरे पास रूबी कोड फ़ाइल (somelogic.rb) है जिसमें कई विधियों और कक्षाएं हैं, जो कहें,/home/user/code में स्थित हैं। अब मैं एक ही निर्देशिका में एक और कक्षा लिख रहा हूं और somelogic.rb में विधियों और वर्गों का संदर्भ देना चाहता हूं। मैं उसको कैसे करू? मैं किसी भी इनपुट की बहुत सराहना करता हूं।किसी अन्य रूबी कोड फ़ाइल में किसी विधि का संदर्भ कैसे लें?
उत्तर
आप रूबी 1.9 का उपयोग कर रहे या बाद में, इस यह करने के लिए सबसे आसान तरीका है:
require_relative 'somelogic'
आप अपने कोड रूबी के 1.9 और पुराने संस्करणों में काम करना चाहते हैं तो आपको इसके बजाय यह करना चाहिए:
require File.join File.dirname(__FILE__), 'somelogic'
जो भी लाइन आप चुनते हैं, आपको इसे अपनी रूबी फ़ाइल के शीर्ष पर रखना चाहिए। फिर somelogic.rb में परिभाषित किसी भी वर्ग, मॉड्यूल, या वैश्विक चर आपके प्रोग्राम के लिए उपलब्ध होंगे।
दूसरी फ़ाइल में चेक (माना otherlogic.rb) लिखने पहली पंक्ति पर '/home/user/code/somelogic.rb' की आवश्यकता है।
/home/user/code/somelogic.rb
class MyMath
def self.sin(number)
...
end
end
आप अपने अन्य फ़ाइल mylogic.rb
में तरीकों sin
उपयोग करना चाहते हैं:
की आवश्यकता है, कृपया ऐसा न करें। आपका कोड बिल्कुल पोर्टेबल नहीं होगा। – mliebelt
मुझे पता है कि मैं बस यह सुनिश्चित कर रहा था कि फ़ाइल शामिल की जाएगी (1.9.2 में 'आवश्यकता' के साथ कुछ समस्या है)। यदि आप एक ही निर्देशिका में हैं तो आपको केवल 'otherlogic.rb' की आवश्यकता होगी –
यहाँ परिदृश्य है।
माणिक के संस्करण के आधार पर निम्न एक कार्य करें:
Ruby 1.8.x
require "somelogic"
class OtherThings
def some_method
MyMath.sin(42)
end
end
के उपयोग की पद्धति सभी माणिक संस्करणों के लिए ही है, लेकिन बयान की आवश्यकता होती है अलग हो सकता है।
Ruby 1.9.x
require_relative "somelogic"
या विविधता
Ruby 1.9.x
require "./somelogic"
पहले बदलाव के लिए हर समय काम करता है, दूसरा एक केवल यदि आप निर्देशिका है जहाँ mylogic.rb
और somelogic.rb
स्थित हैं में ruby mylogic.rb
कहते हैं।
आप एक प्रारंभिक एक और निर्देशिका में स्थित बिंदु से है कि निर्देशिका से फ़ाइलों को लोड करना चाहते हैं, तो आप का उपयोग करना चाहिए:
Ruby 1.8.x and Ruby 1.9.x
$: << File.dirname(__FILE__)
यह रूबी का भार पथ फैलता है। यह __FILE__
के (सापेक्ष) पथ को पढ़ता है, इसकी निर्देशिका प्राप्त करता है, और उस निर्देशिका के (पूर्ण) पथ को आपके लोड पथ में जोड़ता है। तो जब require
द्वारा लुकअप कर रहे हैं, तो फाइलें मिलेंगी।
'आवश्यकता' के बीच एक महत्वपूर्ण अंतर है।/Somelogic'' और 'requ_relative 'somelogic''। उत्तरार्द्ध एक फ़ाइल * स्क्रिप्ट के सापेक्ष * के लिए दिखता है, जबकि पूर्व मौजूदा कार्यशील निर्देशिका में दिखता है। कल्पना कीजिए कि हम "प्रोजेक्ट" नामक निर्देशिका में हैं और हम रूबी प्रोग्राम "स्क्रिप्ट/do_the_thing.rb" चलाते हैं। यदि "do_the_thing.rb" 'requ_relative' का उपयोग करता है, तो यह" प्रोजेक्ट/स्क्रिप्ट/somelogic.rb "की तलाश करेगा। दूसरी तरफ, अगर हम 'आवश्यकता' लिखेंगे।/Somelogic ', यह "परियोजना/somelogic.rb" की तलाश करेगा। – Chuck
अच्छा बिंदु, मैं इसे उत्तर में जोड़ दूंगा। बहुत बहुत धन्यवाद! – mliebelt
चक ने जो कहा, उसमें जोड़ना, 'आवश्यकता' करना/खराब होना 'क्योंकि' रूबी दुभाषिया की वर्तमान कार्यशील निर्देशिका के बारे में एक गलती है, इसलिए यह अन्य परियोजनाओं में आपके कोड का पुन: उपयोग करना मुश्किल बनाता है। –
- 1. किसी अन्य से जेस्क्रिप्ट फ़ाइल का संदर्भ कैसे लें?
- 2. java.util.Properties में किसी अन्य संपत्ति का संदर्भ कैसे लें?
- 3. रूबी में स्थानीय मणि का संदर्भ कैसे लें?
- 4. किसी अन्य विधि से Javadoc संदर्भ param
- 5. किसी अन्य लाइब्रेरी में एक अलग असेंबली में परिभाषित WPF शैली कुंजी का संदर्भ कैसे लें
- 6. किसी अन्य "कक्षा"/फ़ाइल
- 7. किसी उपयोगकर्ता द्वारा परिभाषित .properties फ़ाइल में सिस्टम प्रॉपर्टी का संदर्भ कैसे लें?
- 8. Google appengine प्रोजेक्ट के साथ एक्लिप्स में किसी अन्य प्रोजेक्ट का संदर्भ कैसे लें?
- 9. किसी अन्य एसवीजी फ़ाइल
- 10. किसी अन्य उपयोगकर्ता संदर्भ में कोड निष्पादित करें
- 11. पायथन में मूल विधि का संदर्भ कैसे लें?
- 12. इकाई फ्रेमवर्क कोड पहले - किसी अन्य फ़ाइल में कॉन्फ़िगरेशन
- 13. फ़ायरफ़ॉक्स एक्सटेंशन की डेटा निर्देशिका में किसी फ़ाइल का संदर्भ कैसे लें?
- 14. किसी अन्य जेएसपी फ़ाइल
- 15. किसी अन्य एसबीटी परियोजना से बाहरी एसबीटी परियोजना का संदर्भ कैसे लें?
- 16. मैं किसी विधि का संदर्भ कैसे प्राप्त कर सकता हूं?
- 17. फ़ाइल किसी अन्य प्रक्रिया
- 18. किसी अन्य वर्ग परिवर्तनीय परिभाषा में कक्षा चर का संदर्भ लें
- 19. FxCop बताओ किसी अन्य विधि का निपटान
- 20. Android में XML का उपयोग करके लाइब्रेरी में किसी अन्य पैकेज से स्ट्रिंग का संदर्भ कैसे लें?
- 21. किसी अन्य श्रेणी
- 22. किसी अन्य .js फ़ाइल में जावास्क्रिप्ट विधि को कॉल करें
- 23. क्या <appSettings /> सेटिंग्स को शामिल करना संभव है और किसी अन्य फ़ाइल में किसी अन्य <appSettings /> अनुभाग का संदर्भ लें?
- 24. किसी फ़ाइल से लाइनें खोजें जो कि किसी अन्य फ़ाइल में मौजूद नहीं हैं
- 25. किसी अन्य
- 26. किसी अन्य
- 27. किसी अन्य
- 28. रूबी में किसी अन्य को ब्लॉक कैसे पास करें?
- 29. किसी अन्य फ़ाइल में किसी वर्ग से फ़ंक्शन आयात करना?
- 30. वीबीएनईटी: वीबी.नेट मॉड्यूल का संदर्भ कैसे लें?
को 'somelogic' –