Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

Ruby इंस्टेंस वेरिएबल्स मास्टर करें: एक व्यावहारिक गाइड

Ruby इंस्टेंस वेरिएबल्स को कैसे परिभाषित और उपयोग करें

आप क्लासेस के अंदर इंस्टेंस वेरिएबल्स को परिभाषित करते हैं।

उदाहरण:

मान लीजिए हमारे पास एक CoffeeMachine क्लास है।

एक कॉफी मशीन को पानी की आवश्यकता होती है, इसलिए आप जानना चाह सकते हैं कि कितना पानी उपलब्ध है।

हम ऐसा कर सकते हैं:

 class CoffeeMachine
  def initialize
    @water = 100
  end
end 

यह @water हमारा इंस्टेंस वेरिएबल है।

हम @water को 100 असाइन करते हैं प्रारंभिक मान के रूप में।

अब:

यदि हमारे पास एक make_coffee मेथड है, तो हम टैंक में बचे पानी की मात्रा को कम कर सकते हैं।

 class CoffeeMachine
  def initialize
    @water = 100
  end

  def make_coffee
    @water -= 10
  end
end 

ध्यान दें कि आपके द्वारा बनाया गया प्रत्येक CoffeeMachine ऑब्जेक्ट (new के साथ) का @water के लिए अपना निजी मान होगा।

समझ में आता है, है ना?

क्योंकि यदि आपके पास 10 वास्तविक कॉफी मशीनें हैं, तो प्रत्येक का अपना जल स्तर होगा।

इसीलिए हम इंस्टेंस वेरिएबल्स का उपयोग करते हैं!

इंस्टेंस वेरिएबल्स को कैसे एक्सेस करें

इंस्टेंस वेरिएबल्स बहुत उपयोगी नहीं होंगे यदि आप उनका वर्तमान मान नहीं पढ़ सकते।

आप @ सिंटैक्स के साथ एक इंस्टेंस वेरिएबल मान पढ़ सकते हैं।

इस तरह:

 class CoffeeMachine
  def initialize
    @water = 50
  end

  def print_water_level
    puts "Water Level: #{@water}"
  end
end

machine = CoffeeMachine.new
machine.print_water_level # Water Level: 50 

print_water_level मेथड इसका मान प्रिंट करने के लिए @water का उपयोग करता है।

एट्रिब्यूट एक्सेसर्स का उपयोग करना

आप देख सकते हैं कि आप क्लास के बाहर से इंस्टेंस वेरिएबल्स एक्सेस नहीं कर सकते।

यह डिज़ाइन द्वारा है!

इसे हम "एनकैप्सुलेशन" कहते हैं, एक ऑब्जेक्ट का डेटा बाहरी दुनिया से सुरक्षित होता है, जैसे अन्य Ruby ऑब्जेक्ट्स।

मेरा मतलब यहाँ है:

 machine = CoffeeMachine.new
machine.water # NoMethodError: undefined method `water' for #<CoffeeMachine:0x2d0a530>
machine.@water # SyntaxError: unexpected tIVAR, expecting '(' 

कुछ मामलों में, आप इसकी अनुमति देना चाह सकते हैं।

आप ऑब्जेक्ट के डेटा में एक विंडो खोल सकते हैं ताकि यह बाहर से उपलब्ध हो जाए।

इसे करने का एक तरीका:

 class CoffeeMachine
  def initialize
    @water = 100
  end

  def water
    @water
  end
end

machine = CoffeeMachine.new
machine.water # 100 

यहां कुछ खास नहीं है।

हम अंदर से मान वापस कर रहे हैं, जहां हमारे पास इसकी एक्सेस है।

एक अन्य विकल्प एट्रिब्यूट रीडर का उपयोग करना है।

उदाहरण:

 class CoffeeMachine
  attr_reader :water
  def initialize
    @water = 100
  end
end

machine = CoffeeMachine.new
machine.water # 100 

पहले जैसी ही बात।

एकमात्र अंतर यह है कि Ruby आपके लिए कड़ी मेहनत करेगा और वह water मेथड बनाएगा।

जिन चीज़ों को आपको जानना चाहिए

इंस्टेंस वेरिएबल्स के बारे में कुछ बातें याद रखें ताकि आप मुसीबत में न पड़ें।

नोट्स लें:

  • एक अपरिभाषित इंस्टेंस वेरिएबल हमेशा nil लौटाता है
  • इंस्टेंस वेरिएबल्स को initialize मेथड में बनाना आवश्यक नहीं है, लेकिन इसी तरह आप उन्हें एक प्रारंभिक मान देते हैं
  • इंस्टेंस वेरिएबल्स तक पहुंचने के उन्नत तरीके हैं, जैसे instance_variable_get, लेकिन आपको इनसे बचना चाहिए

बताते चलें, आप इंस्टेंस वेरिएबल्स की एक सूची प्राप्त कर सकते हैं।

इस तरह:

 machine.instance_variables # [:@water] 

आपको यह उपयोगी लग सकता है 🙂

एक और बात:

Rails में, इंस्टेंस वेरिएबल्स (जैसे @books), आपके कंट्रोलर और व्यूज़ के बीच डेटा साझा करने के लिए उपयोग किए जाते हैं।

लेकिन आप अभी भी उन्हें सामान्य रूप से, अपनी खुद की क्लासेस के लिए उपयोग कर सकते हैं।

सारांश

आपने Ruby इंस्टेंस वेरिएबल्स के बारे में सीखा! एक प्रकार का वेरिएबल जो @ सिंबल से शुरू होता है और क्लासेस के अंदर उन्हें डेटा स्टोर करने के लिए एक स्थान देने के लिए उपयोग किया जाता है।

अब अभ्यास करना न भूलें, कोड उदाहरणों के साथ खेलें और अपने खुद के लेकर आएं।

पढ़ने के लिए धन्यवाद।


  1. रूबी में फाइलें कैसे पढ़ें और लिखें: एक चरण-दर-चरण गाइड रूबी में फाइलें कैसे पढ़ें और लिखें: एक चरण-दर-चरण गाइड

    आज आप सीखेंगे कि रूबी में फाइलें कैसे पढ़ें और लिखें ताकि आप सामग्री निकाल सकें, नई फाइलें बना सकें, और वह जानकारी ढूंढ सकें जिसकी आपको आवश्यकता है! यहां हम क्या कवर करने जा रहे हैं: विषयसूची1 रूबी में फाइलें कैसे पढ़ें2 रूबी में फाइल में कैसे लिखें3 रूबी फाइल मेथड्स4 डायरेक्टरी ऑपरेशन्स5 FileUtils

  1. Internet Explorer 11 को अनुकूलित करें: गति और प्रदर्शन सुधारने के टिप्स Internet Explorer 11 को अनुकूलित करें: गति और प्रदर्शन सुधारने के टिप्स

    Internet Explorer 1995 से Windows का हिस्सा रहा है जब तक कि हाल ही में Windows 10 के रिलीज के बाद। IE 11 Internet Explorer का अंतिम संस्करण था। हम में से कई अभी भी Internet Explorer का उपयोग करना पसंद करते हैं क्योंकि इसका उपयोगकर्ता-अनुकूल इंटरफेस है। हाल ही में, क्या आपने अनुभव किया है कि आपका IE

  1. सोशल नेटवर्किंग को आकार दे रहीं नवीनतम नवाचारों की खोज करें सोशल नेटवर्किंग को आकार दे रहीं नवीनतम नवाचारों की खोज करें

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