यह अभ्यास Ruby की सबसे बुनियादी चीज़ें सिखाएगा। इसमें बहुत कुछ शामिल है, लेकिन अगर यह आपको बहुत ज़्यादा लगे तो चिंता मत कीजिए। जैसे-जैसे हम इस ट्रैक में आगे बढ़ेंगे, हम हर चीज़ को और भी गहराई से समझेंगे।
Ruby के बारे में समझने की एक सबसे ज़रूरी बात यह है कि यह एक ऑब्जेक्ट-ओरिएंटेड भाषा है, और यह कि Ruby में हर चीज़ एक ऑब्जेक्ट है। संख्याएँ, स्ट्रिंग, ऐरे, ये सब ऑब्जेक्ट हैं।
हम ऑब्जेक्ट का इस्तेमाल आम तौर पर उन्हें नाम देकर करते हैं, और यह नाम वेरिएबल या कॉन्स्टेंट के ज़रिए दिया जाता है।
वेरिएबल हमेशा स्नेक केस में लिखे जाते हैं।
एक वेरिएबल अपने जीवनकाल में अलग-अलग ऑब्जेक्ट को संदर्भित कर सकता है।
उदाहरण के लिए, my_first_variable को = ऑपरेटर की मदद से कई बार परिभाषित और दोबारा परिभाषित किया जा सकता है:
my_first_variable = 1
my_first_variable = "Some string"
my_first_variable = SomeComplexObject.new
कॉन्स्टेंट को लेकिन सिर्फ एक बार ही असाइन किया जाना चाहिए। इनकी शुरुआत अंग्रेज़ी के बड़े अक्षरों से होनी चाहिए, और आम तौर पर इन्हें सब बड़े अक्षरों में लिखा जाता है, जहाँ शब्दों को अंडरस्कोर से अलग किया जाता है। उदाहरण के लिए:
MY_FIRST_CONSTANT = 10
# Redefining not allowed
# MY_FIRST_CONSTANT = "Some String"
Ruby का सारा कोड क्लास में व्यवस्थित रहता है।
क्लास को class कीवर्ड और उसके बाद क्लास के नाम से परिभाषित किया जाता है।
ऑब्जेक्ट आम तौर पर क्लास का इंस्टेंस बनाकर तैयार किए जाते हैं, और इसके लिए .new मेथड इस्तेमाल होता है।
उदाहरण के लिए:
# Define the class
class Calculator
#...
end
# Create an instance of it and assign it to a variable
my_first_calc = Calculator.new
काम करने वाली इकाइयाँ मेथड में समेट दी जाती हैं, ठीक वैसे ही जैसे दूसरी भाषाओं में फंक्शन होते हैं।
किसी मेथड को पोज़िशनल आर्गुमेंट के साथ परिभाषित किया जा सकता है, कीवर्ड आर्गुमेंट के साथ (जिन्हें : सिंटैक्स से परिभाषित और कॉल किया जाता है), या बिना किसी आर्गुमेंट के भी।
मेथड या तो आखिर में मूल्यांकित होने वाले स्टेटमेंट का परिणाम अपने आप लौटा देता है, या return कीवर्ड की मदद से स्पष्ट रूप से कोई ऑब्जेक्ट लौटा सकता है।
class Calculator
# Positional arguments
def add(num1, num2)
return num1 + num2 # Explicit return
end
# Keyword arguments
def multiply(num1:, num2:)
num1 * num2 # Implicit return
end
end
मेथड को . सिंटैक्स से कॉल किया जाता है:
calc = Calculator.new
calc.add(1, 3)
calc.multiply(num1: 2, num2: 5)
इस अभ्यास में आप कुछ कोड लिखेंगे जो आपको अपनी पसंदीदा कुकबुक से एक शानदार लसानिया पकाने में मदद करेगा।
आपके पास चार कार्य हैं, जो सब लसानिया पकाने में लगने वाले समय से जुड़े हैं।
Lasagna::EXPECTED_MINUTES_IN_OVEN कॉन्स्टेंट बनाइए, जो लौटाता है कि लसानिया को ओवन में कितने मिनट रहना चाहिए। कुकबुक के अनुसार, ओवन में अपेक्षित समय 40 मिनट है:
Lasagna::EXPECTED_MINUTES_IN_OVEN
# => 40
Lasagna#remaining_minutes_in_oven मेथड बनाइए। यह पैरामीटर के रूप में वे वास्तविक मिनट लेता है जितनी देर लसानिया ओवन में रह चुका है, और लौटाता है कि पिछले कार्य में तय किए गए ओवन के अपेक्षित समय के आधार पर लसानिया को ओवन में अभी और कितने मिनट रहना है।
lasagna = Lasagna.new
lasagna.remaining_minutes_in_oven(30)
# => 10
Lasagna#preparation_time_in_minutes मेथड बनाइए। यह पैरामीटर के रूप में लसानिया में डाली गई परतों की संख्या लेता है, और लौटाता है कि लसानिया तैयार करने में आपने कितने मिनट लगाए, यह मानते हुए कि हर परत तैयार करने में आपको 2 मिनट लगते हैं।
lasagna = Lasagna.new
lasagna.preparation_time_in_minutes(2)
# => 4
Lasagna#total_time_in_minutes मेथड बनाइए। यह दो नामित पैरामीटर लेता है: number_of_layers पैरामीटर लसानिया में डाली गई परतों की संख्या है, और actual_minutes_in_oven पैरामीटर उन मिनटों की संख्या है जितनी देर लसानिया ओवन में रह चुका है। इस फंक्शन को लौटाना चाहिए कि लसानिया पकाने में आपने कुल कितने मिनट काम किया, जो तैयारी के मिनटों और अभी तक लसानिया के ओवन में बिताए मिनटों का जोड़ है।
lasagna = Lasagna.new
lasagna.total_time_in_minutes(number_of_layers: 3, actual_minutes_in_oven: 20)
# => 26
Exercism पर साइन अप कीजिए और Ruby को 21 कॉन्सेप्ट121 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।