How do you use global variables or constant values in Ruby? -


मेरे पास ऐसा प्रोग्राम है जो दिखता है:

  $ offset = Point.new (100 , 200); Def खींचना (बिंदु) pointNew = $ offset + बिंदु; आकर्षित एबसोल्यूट (पॉइंट) एंड ड्रॉ (प्वाइंट। नया (3, 4));  

$ ऑफसेट का उपयोग थोड़ा अजीब लगता है।

सी में, अगर मैं किसी फ़ंक्शन के बाहर कुछ परिभाषित करता हूं, तो यह स्वचालित वैरिएबल स्वचालित रूप से रूबी में यह क्यों $ offset होना चाहिए, लेकिन ऑफसेट नहीं हो सकता और अब भी वैश्विक हो सकता है? यदि यह ऑफसेट है, तो यह एक स्थानीय है? लेकिन जहां स्थानीय, क्योंकि यह बहुत ज्यादा वैश्विक लगता है।

क्या कोड को ऊपर लिखना बेहतर तरीके हैं? $ ऑफसेट का उपयोग पहली बार में थोड़ी बदसूरत लग सकता है।


अपडेट: मैं इसे वर्ग परिभाषा के अंदर ऑफ़सेट रख सकता हूं, लेकिन क्या अगर दो या कई वर्गों को इस स्थिरता का उपयोग करने की आवश्यकता है? इस मामले में मुझे अब भी $ ऑफसेट

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

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग पर एक विशिष्ट दृष्टिकोण एक क्लास के अंदर सभी तर्क को समझाता है:

  वर्ग बिंदु attr_accessor: x,: y # यदि हम निर्देशांक निर्दिष्ट नहीं करते हैं, तो हम 0 से शुरू करते हैं। डीईएफ़ आरंभीकरण (एक्स = 0, वाई = 0) # नोटिस करें कि `@` इमेज वेरिएबल्स इंगित करता है @x = x @ y = y अंत # यहां हम `+ 'ऑपरेटर ओवरराइड कर दिया है। Def + (बिंदु) Point.new (self.x + point.x, self.y + point.y) अंत # यहां हम बिंदु को आकर्षित करते हैं Def off (ऑफसेट = शून्य) अगर offset.nil? New_point = self new newpoint = self + offset end new_point.draw_absolute end def draw_absolute डालता है "x: # {self.x}, y: # {self.y}" अंत अंत first_point = point.new (100, 200) second_point = प्वाइंट.न्यू (3, 4) दूसरी_पैंट ड्रेव (प्रथम_पंक्ति)  

आशा है कि यह थोड़ा स्पष्ट करता है।


Comments

Popular posts from this blog

c++ - Linux and clipboard -

Visual Studio 2005: How to speed up builds when a VSMDI is open? -

booting ubuntu from usb using virtualbox -