ट्रैक
/
Ruby
Ruby
/
अभ्यास
/
मनोरंजन पार्क
मनोरंजन पार्क

मनोरंजन पार्क

सीखने का अभ्यास

परिचय

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

ऑब्जेक्ट इंस्टेंस वेरिएबल सेट करके अपनी स्थिति खुद रख सकते हैं। ये वेरिएबलो ऑब्जेक्ट के अंदर रहते हैं और आम तौर पर कुछ आंतरिक स्थिति संग्रहीत करने के लिए इस्तेमाल होते हैं।

इंस्टेंस वेरिएबल हमेशा @ से शुरू होते हैं। आप @ से शुरू होने वाला वेरिएबल सेट करके नया इंस्टेंस वेरिएबल बना सकते हैं। उदाहरण के लिए:

class Repeater
  def hear(something)
    # Save what's been heard into a new instance variable called @heard
    @heard = something
  end

  def repeat
    # Return the value of the instance variable
    @heard
  end
end

repeater = Repeater.new
repeater.hear("Hello, friend!")
print repeater.repeat # Prints "Hello, friend!"

ऑब्जेक्ट आम तौर पर अपनी शुरुआती स्थिति initialize मेथड में सेट करते हैं। किसी क्लास पर new कॉल करते समय इस मेथड को अपने आप कॉल किया जाता है।

class Airplane
  def initialize
    @wings = 2
  end

  def wings
    @wings
  end
end

plane = Airplane.new
plane.wings # returns 2

initialize मेथड आर्गुमेंट भी ले सकता है, ताकि हर इंस्टेंस किसी अपनी अलग स्थिति से शुरू हो सके:

class Suitcase
  def initialize(locked)
    @locked = locked
  end
end

इंस्टेंस वेरिएबलो को बाहर से पढ़ने और लिखने के लिए निजी मानना अच्छा तरीका है। इसके बजाय हम उनकी वैल्यू पाने और सेट करने के लिए मेथड बनाते हैं। उदाहरण के लिए:

class Suitcase
  def initialize
    @locked = false
  end

  def locked? # Query methods should be named with a trailing `?`
    @locked
  end

  def lock! # Methods which mutate state should have trailing `!`
    @locked = true
  end
end

suitcase = Suitcase.new
suitcase.locked? # false
suitcase.lock!
suitcase.locked? # true

Nil

Nil एक अंग्रेज़ी शब्द है जिसका मतलब "कुछ नहीं" या "शून्य" होता है। Ruby में nil का इस्तेमाल किसी ऑब्जेक्ट की अनुपस्थिति बताने के लिए किया जाता है। दूसरी प्रोग्रामिंग भाषाओं में null या none वैल्यू भी वही भूमिका निभा सकती हैं।

# I do not have a favorite color
favorite_color = nil

जब कोई इंस्टेंस वेरिएबल पहली बार सामने आता है, तो Ruby उसे डिफॉल्ट रूप से nil वैल्यू दे देता है, जब तक कि उसे कोई दूसरी वैल्यू न दी जाए।

print @favourite_color # prints nil
@favourite_color = "blue"
print @favourite_color # prints "blue"

निर्देश

आप एक अम्यूज़मेंट पार्क के साथ काम कर रहे हैं और आपको एक ऐसा सिस्टम डिज़ाइन करने का स्पेसिफिकेशन दिया गया है जो पार्क में आने वालों और राइड्स को संभाले। आपको Attendee को मॉडल करना है, यानी पार्क में आने वाले व्यक्ति को।

1. नए अटेंडी बनाइए

Attendee क्लास का Attendee#initialize मेथड बनाइए। यह ऊँचाई (सेंटीमीटर में) लेता है और उसे एक इंस्टेंस वेरिएबल में संग्रहीत करता है

Attendee.new(106)
# => #<Attendee:0x000055c33e6c7e18 @height=106>

2. अटेंडी की ऊँचाई कितनी है

Attendee क्लास का Attendee#height गेटर बनाइए। यह इंस्टेंस की ऊँचाई लौटाता है

Attendee.new(106).height
# => 106

3. राइड पास आईडी क्या है

सभी अटेंडी ने राइड पास नहीं खरीदा होता, लेकिन हमें पता होना चाहिए कि किसी के पास पास है या नहीं। Attendee क्लास के लिए Attendee#pass_id गेटर बनाइए। यह इंस्टेंस का pass_id लौटाता है, और अगर अटेंडी के पास राइड पास नहीं है तो nil लौटाता है।

Attendee.new(106).pass_id
# => nil

4. लोगों को राइड पास खरीदने दीजिए

Attendee#issue_pass! बनाइए, जो इंस्टेंस की स्थिति बदल दे और pass id वाले इंस्टेंस वेरिएबल में आर्गुमेंट रख दे। यह pass id लौटाता है।

attendee = Attendee.new(106)
attendee.issue_pass!(42)
attendee.pass_id
# => 42

5. पास वापस लीजिए

कुछ मेहमान असुरक्षित तरीके से पेश आकर नियम तोड़ देते हैं, इसलिए पार्क पास वापस ले सकना चाहता है। Attendee#revoke_pass! बनाइए, जो इंस्टेंस की स्थिति बदल दे और pass id को nil कर दे

attendee = Attendee.new(106)
attendee.issue_pass!(42)
attendee.revoke_pass!
attendee.pass_id
# => nil
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Ruby Exercism

मनोरंजन पार्क शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Ruby को 21 कॉन्सेप्ट121 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।