ट्रैक
/
Go
Go
/
अभ्यास
/
गोफर की शानदार लज़ान्या
गोफर की शानदार लज़ान्या

गोफर की शानदार लज़ान्या

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

परिचय

Go एक स्टैटिकली टाइप्ड, कंपाइल्ड प्रोग्रामिंग भाषा है। यह अभ्यास भाषा की तीन बड़ी विशेषताओं से आपका परिचय कराता है: पैकेज, फंक्शन और वेरिएबल।

पैकेज

Go के एप्लिकेशन पैकेजों में व्यवस्थित होते हैं। पैकेज एक ही डायरेक्टरी में रखी सोर्स फाइलों का समूह होता है। एक डायरेक्टरी की सभी सोर्स फाइलों का पैकेज नाम एक ही होना चाहिए। जब किसी पैकेज को इम्पोर्ट किया जाता है, तो उसकी केवल वे चीज़ें (फंक्शन, टाइप, वेरिएबल, कॉन्स्टेंट) इस्तेमाल की जा सकती हैं जिनके नाम बड़े अक्षर से शुरू होते हैं। Go में नाम रखने का सुझाया हुआ तरीका यह है कि आइडेंटिफायर camelCase में लिखे जाते हैं। इसका अपवाद वे आइडेंटिफायर हैं जिन्हें अलग-अलग पैकेजों से उपलब्ध होना चाहिए; उन्हें PascalCase में लिखा जाना चाहिए।

package lasagna

वेरिएबल

Go स्टैटिकली टाइप्ड है, यानी कंपाइल होने के समय ही हर वेरिएबल का टाइप तय होना ज़रूरी है।

वेरिएबल को टाइप स्पष्ट रूप से बताकर भी बनाया जा सकता है:

var explicit int // Explicitly typed

आप इनिशियलाइज़र का उपयोग भी कर सकते हैं। तब कंपाइलर वेरिएबल का टाइप इनिशियलाइज़र के टाइप के हिसाब से असाइन कर देगा।

implicit := 10   // Implicitly typed as an int

घोषित होने के बाद वेरिएबलो को = ऑपरेटर से वैल्यू असाइन की जा सकती है। लेकिन घोषित होने के बाद वेरिएबल का टाइप कभी नहीं बदल सकता।

count := 1 // Assign initial value
count = 2  // Update to new value

count = false // This throws a compiler error due to assigning a non `int` type

कॉन्स्टेंट

कॉन्स्टेंट भी वेरिएबलो की तरह एक डेटा रखते हैं, लेकिन प्रोग्राम के चलने के दौरान उनकी वैल्यू नहीं बदल सकती।

कॉन्स्टेंट const कीवर्ड से बनाए जाते हैं। ये संख्या, अक्षर, स्ट्रिंग या बूलियन हो सकते हैं:

const Age = 21 // Defines a numeric constant 'Age' with the value of 21

फंक्शन

Go के फंक्शन शून्य या उससे अधिक पैरामीटर लेते हैं। हर पैरामीटर का टाइप स्पष्ट रूप से लिखना ज़रूरी है। टाइप का अनुमान नहीं लगाया जाता।

फंक्शन से वैल्यू return कीवर्ड से लौटाई जाती हैं।

किसी फंक्शन को कॉल करने के लिए उसका नाम लिखा जाता है और उसके हर पैरामीटर के लिए आर्गुमेंट दिए जाते हैं।

ध्यान दीजिए कि Go में दो तरह के कमेंट होते हैं। एक लाइन वाले कमेंट से पहले // लगाया जाता है, और कई लाइनों वाले कमेंट /* और */ के बीच लिखे जाते हैं।

package greeting

// Hello is a public function.
func Hello (name string) string {
    return hi(name)
}

// hi is a private function.
func hi (name string) string {
    return "hi " + name
}

निर्देश

इस अभ्यास में आप कुछ कोड लिखेंगे, ताकि अपनी पसंदीदा पकाने की किताब से एक शानदार लसाग्ना बनाने में आपको मदद मिले।

आपके सामने चार काम हैं, और चारों लसाग्ना पकाने में लगने वाले समय से जुड़े हैं।

1. ओवन में लगने वाले अनुमानित समय को मिनटों में तय कीजिए

OvenTime कॉन्स्टेंट बनाइए और उसमें तय कीजिए कि लसाग्ना को ओवन में कितने मिनट रहना चाहिए। पकाने की किताब के अनुसार, ओवन में रखने का अनुमानित समय 40 मिनट है:

OvenTime
// => 40

2. ओवन में बचे हुए समय को मिनटों में निकालिए

RemainingOvenTime() फंक्शन बनाइए। यह फंक्शन पैरामीटर के रूप में वे असली मिनट लेता है जितनी देर लसाग्ना ओवन में रह चुका है। पिछले काम में तय हुए ओवन के अनुमानित समय के आधार पर यह लौटाता है कि लसाग्ना को ओवन में अभी कितने मिनट और रहना है।

func RemainingOvenTime(actual int) int {
    // TODO
}

RemainingOvenTime(30)
// => 10

3. तैयारी में लगने वाले समय को मिनटों में निकालिए

PreparationTime फंक्शन बनाइए। यह पैरामीटर के रूप में उन परतों की संख्या लेता है जो आपने लसाग्ना में लगाईं, और लौटाता है कि लसाग्ना तैयार करने में आपने कितने मिनट लगाए। यह मानकर चलिए कि हर परत तैयार करने में आपको 2 मिनट लगते हैं।

func PreparationTime(numberOfLayers int) int {
    // TODO
}

PreparationTime(2)
// => 4

4. बीते हुए काम के समय को मिनटों में निकालिए

ElapsedTime फंक्शन बनाइए, जो दो पैरामीटर लेता है। पहला पैरामीटर उन परतों की संख्या है जो आपने लसाग्ना में लगाईं, और दूसरा पैरामीटर यह कि लसाग्ना कितने मिनट से ओवन में है। इस फंक्शन को लौटाना चाहिए कि लसाग्ना पकाने पर आपने कुल कितने मिनट काम किया। यह तैयारी में लगे मिनटों और इस समय लसाग्ना के ओवन में बिताए मिनटों का जोड़ है।

func ElapsedTime(numberOfLayers, actualMinutesInOven int) int {
    // TODO
}

ElapsedTime(3, 20)
// => 26
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Go Exercism

गोफर की शानदार लज़ान्या शुरू करने के लिए तैयार हैं?

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