কিছু লজিক বারবার চালানোর জন্য সবচেয়ে বেশি ব্যবহৃত স্টেটমেন্টগুলোর একটি হলো for লুপ।
Go-তে এটি for কিওয়ার্ড, একটি হেডার এবং কোঁকড়া বন্ধনীর ভেতরে মোড়ানো লুপের বডি সম্বলিত একটি কোড ব্লক নিয়ে গঠিত।
হেডারটি সেমিকোলন ; দিয়ে আলাদা করা ৩টি অংশ নিয়ে গঠিত: init, condition এবং post।
for init; condition; post {
// loop body - code that is executed repeatedly as long as the condition is true
}
লক্ষ্য করুন: অন্য ভাষার মতো এখানে হেডারের তিনটি অংশকে ঘিরে প্রথম বন্ধনী () থাকে না।
আসলে এমন বন্ধনী বসানো একটি কম্পাইলেশন এরর।
তবে লুপের বডিকে ঘিরে থাকা দ্বিতীয় বন্ধনী { } সবসময়ই প্রয়োজন।
সাধারণত 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টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।