किसी लॉजिक को बार-बार चलाने के लिए for लूप सबसे आम स्टेटमेंट में से एक है।
Go में इसमें for कीवर्ड, एक हेडर और एक कोड ब्लॉक होता है, जिसके अंदर लूप का कोड घुंघराले ब्रैकेट में लिपटा रहता है।
हेडर में तीन हिस्से होते हैं, जिन्हें सेमीकोलन ; से अलग किया जाता है: init, condition और post.
for init; condition; post {
// loop body - code that is executed repeatedly as long as the condition is true
}
ध्यान दें: दूसरी भाषाओं के उलट, हेडर के तीनों हिस्सों के चारों ओर कोई गोल ब्रैकेट () नहीं होते।
वास्तव में ऐसा ब्रैकेट लगाना कंपाइलेशन एरर देता है।
लेकिन लूप के अंदर के कोड के चारों ओर घुंघराले ब्रैकेट { } हमेशा ज़रूरी होते हैं।
for लूप - एक उदाहरणinit हिस्सा आम तौर पर एक काउंटर वेरिएबल तैयार करता है, condition हिस्सा जाँचता है कि लूप जारी रहना चाहिए या रुकना चाहिए, और post हिस्सा आम तौर पर हर इटरेशन के अंत में काउंटर बढ़ा देता है।
for i := 1; i < 10; i++ {
fmt.Println(i)
}
यह लूप 1 से 9 तक की संख्याएँ प्रिंट करेगा (9 समेत)।
स्टेप तय करना अक्सर बढ़ाने या घटाने वाले स्टेटमेंट से किया जाता है, जैसा ऊपर के उदाहरण में दिखाया गया है।
आप एक उत्साही पक्षी-निरीक्षक हैं जो यह ध्यान रखते हैं कि आपके बगीचे में कितने पक्षी आए हैं। आम तौर पर आप पक्षियों को गिनने के लिए नोटबुक में गिनती लिखते हैं, लेकिन अपने डेटा के साथ बेहतर काम करने के लिए आपने पिछले कुछ सप्ताहों की पक्षी-गिनती को डिजिटल रूप में दर्ज कर लिया है।
चलिए, डेटा का विश्लेषण शुरू करते हैं और पहले उसे ऊपर से देखते हैं। पता कीजिए कि जब से आपने अपने लॉग रखना शुरू किया, तब से आपने कुल कितने पक्षी गिने।
ऐसा फंक्शन TotalBirdCount बनाइए जो int मानों का एक स्लाइस लेता है, जिसमें प्रति दिन की पक्षी-गिनती दी गई हो।
इसे आपके द्वारा गिने गए कुल पक्षियों की संख्या लौटानी चाहिए।
birdsPerDay := []int{2, 5, 0, 7, 4, 1, 3, 0, 2, 5, 0, 1, 3, 1}
TotalBirdCount(birdsPerDay)
// => 34
अब जब आपको अपनी पक्षी-गिनती की संख्याओं की सामान्य समझ हो गई है, तो आप और बारीक विश्लेषण करना चाहते हैं।
ऐसा फंक्शन BirdsInWeek बनाइए जो प्रति दिन की पक्षी-गिनती का स्लाइस और सप्ताह का क्रमांक लेता है।
यह उस विशेष सप्ताह में आपके द्वारा गिने गए कुल पक्षियों की संख्या लौटाता है। आप मान सकते हैं कि सप्ताह हमेशा पूरी तरह दर्ज होते हैं।
birdsPerDay := []int{2, 5, 0, 7, 4, 1, 3, 0, 2, 5, 0, 1, 3, 1}
BirdsInWeek(birdsPerDay, 2)
// => 12
आपको समझ आया कि जब आप पक्षियों की गिनती का रिकॉर्ड रखने की कोशिश कर रहे थे, तब एक पक्षी बगीचे के एक दूर के कोने में छिपा हुआ था।
आपने पता लगाया कि यह पक्षी हमेशा हर दूसरे दिन आपके बगीचे में रहता था।
आपको ठीक से पता नहीं है कि वह उन दिनों के बीच कहाँ रहता था, लेकिन यह निश्चित है कि आपके बगीचे में नहीं रहता था।
आपकी पक्षी-निरीक्षक सहज समझ यह भी बताती है कि जिस पहले दिन को आपने अपनी सूची में दर्ज किया, उस दिन वह पक्षी आपके बगीचे में था।
इस नई जानकारी के आधार पर, एक ऐसा फंक्शन FixBirdCountLog लिखिए जो प्रति दिन गिने गए पक्षियों का स्लाइस आर्गुमेंट के रूप में लेता है और गिनती की गलती सुधारने के बाद वह स्लाइस लौटाता है।
birdsPerDay := []int{2, 5, 0, 7, 4, 1}
FixBirdCountLog(birdsPerDay)
// => [3 5 1 7 5 1]
Exercism पर साइन अप कीजिए और Go को 34 कॉन्सेप्ट166 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।