CoffeeScript-এ iteration (পুনরাবৃত্তি) করা অনেক সহজ এবং কার্যকরী। JavaScript-এর মতোই CoffeeScript-এ লুপ এবং iteration এর জন্য বিভিন্ন কৌশল ব্যবহার করা যায়। CoffeeScript এর সিনট্যাক্স এতটাই পরিষ্কার এবং সংক্ষিপ্ত যে iteration techniques গুলি আরও সহজ হয়ে ওঠে। এখানে আমরা CoffeeScript-এ কিছু Advanced Iteration Techniques আলোচনা করবো, যেমন:
- Array Comprehensions
- Iterating over objects
- Custom Iterators
- Iterating with
forEachandmap
1. Array Comprehensions
Array comprehension CoffeeScript-এর একটি শক্তিশালী বৈশিষ্ট্য, যা আপনাকে অ্যারে থেকে নতুন অ্যারে তৈরি করতে সাহায্য করে। এটি মূলত এক্সপ্রেশন, রেঞ্জ এবং শর্তের সাথে ব্যবহার করা হয়।
উদাহরণ: Basic Array Comprehension
squares = (x * x for x in [1..5])
console.log squares # [1, 4, 9, 16, 25]
এখানে, [1..5] একটি রেঞ্জ যা ১ থেকে ৫ পর্যন্ত সংখ্যা নিয়ে আসে এবং x * x দ্বারা প্রতিটি সংখ্যার বর্গ তৈরি করা হয়।
উদাহরণ: Array Comprehension with Condition
evenSquares = (x * x for x in [1..10] when x % 2 == 0)
console.log evenSquares # [4, 16, 36, 64, 100]
এখানে, when x % 2 == 0 শর্তটি ব্যবহার করা হয়েছে, যার মাধ্যমে কেবলমাত্র যুগল সংখ্যা (even numbers) এর বর্গ নেওয়া হয়েছে।
JavaScript-এ কম্পাইল হওয়া কোড:
var squares;
squares = (function() {
var i, ref, results;
results = [];
for (i = 1, ref = 5; i <= ref; i++) {
results.push(i * i);
}
return results;
})();
console.log(squares); // [1, 4, 9, 16, 25]
2. Iterating over Objects
CoffeeScript-এ অবজেক্টের উপর iteration করার জন্য সহজ সিনট্যাক্স ব্যবহার করা হয়। আপনি for লুপ ব্যবহার করে অবজেক্টের প্রতিটি কী-ভ্যালু জোড়া নিয়ে কাজ করতে পারেন।
উদাহরণ: Iterating Over Object Keys and Values
person = name: "Alice", age: 30, city: "New York"
for key, value of person
console.log "#{key}: #{value}"
এখানে, for key, value of person অবজেক্টের প্রতিটি কী-ভ্যালু জোড়ার জন্য পুনরাবৃত্তি করে। ফলস্বরূপ:
name: Alice
age: 30
city: New York
JavaScript-এ কম্পাইল হওয়া কোড:
var person, key, value;
person = {name: "Alice", age: 30, city: "New York"};
for (key in person) {
if (person.hasOwnProperty(key)) {
value = person[key];
console.log(key + ": " + value);
}
}
3. Custom Iterators
CoffeeScript-এ আপনি নিজস্ব iterator তৈরি করতে পারেন, যা আপনাকে কাস্টম লজিক অনুযায়ী একটি অ্যারে বা তালিকার উপর iteration করার সুবিধা দেয়।
উদাহরণ: Custom Iterator
range = (start, end) ->
for i in [start..end]
yield i
for num in range(1, 5)
console.log num
এখানে, range ফাংশনটি একটি কাস্টম iterator তৈরি করেছে যা start থেকে end পর্যন্ত সংখ্যা পুনরাবৃত্তি করে। yield কিওয়ার্ডটি iteration এর মাধ্যমে মান প্রদান করে।
JavaScript-এ কম্পাইল হওয়া কোড:
var range;
range = function(start, end) {
var i, ref, results;
results = [];
for (i = start, ref = end; i <= ref; i++) {
results.push(i);
}
return results;
};
var num, ref;
ref = range(1, 5);
for (var i = 0, len = ref.length; i < len; i++) {
num = ref[i];
console.log(num);
}
4. Iterating with forEach and map
CoffeeScript-এ forEach এবং map এর মতো আরামদায়ক array methods ব্যবহার করা যায়। এগুলি JavaScript-এর অ্যারে মেথডের মতোই কাজ করে এবং কিছুটা সহজ সিনট্যাক্সে লেখা হয়।
উদাহরণ: forEach ব্যবহার
numbers = [1, 2, 3, 4, 5]
numbers.forEach (num) -> console.log num
এখানে, forEach method প্রতিটি উপাদান নিয়ে ফাংশনটি চালায়।
উদাহরণ: map ব্যবহার
numbers = [1, 2, 3, 4, 5]
squares = numbers.map (num) -> num * num
console.log squares # [1, 4, 9, 16, 25]
এখানে, map method প্রতিটি উপাদানের উপর num * num এক্সপ্রেশন প্রয়োগ করে এবং একটি নতুন অ্যারে তৈরি করে।
JavaScript-এ কম্পাইল হওয়া কোড:
var numbers, squares;
numbers = [1, 2, 3, 4, 5];
numbers.forEach(function(num) {
return console.log(num);
});
squares = numbers.map(function(num) {
return num * num;
});
console.log(squares); // [1, 4, 9, 16, 25]
5. Breaking and Continuing in Iterations
CoffeeScript-এ break এবং continue কিওয়ার্ডগুলি iteration-এর মধ্যে লুপ নিয়ন্ত্রণ করতে ব্যবহৃত হয়।
উদাহরণ: break এবং continue
numbers = [1, 2, 3, 4, 5, 6]
for num in numbers
continue if num % 2 == 0 # শুধুমাত্র বিজোড় সংখ্যা প্রিন্ট করবে
break if num > 4 # ৪-এর পর loop বন্ধ হয়ে যাবে
console.log num
এখানে, continue ব্যবহার করে বিজোড় সংখ্যা বাদ দেয়া হয়েছে এবং break ব্যবহার করে ৪-এর পর iteration বন্ধ করা হয়েছে।
JavaScript-এ কম্পাইল হওয়া কোড:
var numbers, num;
numbers = [1, 2, 3, 4, 5, 6];
for (var i = 0, len = numbers.length; i < len; i++) {
num = numbers[i];
if (num % 2 === 0) {
continue;
}
if (num > 4) {
break;
}
console.log(num);
}
সারাংশ
- Array Comprehensions: CoffeeScript-এ অ্যারে থেকে নতুন অ্যারে তৈরি করার একটি সংক্ষিপ্ত এবং শক্তিশালী পদ্ধতি।
- Iterating over Objects: CoffeeScript-এ অবজেক্টের উপর সহজেই iteration করা যায়।
- Custom Iterators: নিজস্ব iterator তৈরি করা সম্ভব, যা কাস্টম লজিক অনুযায়ী পুনরাবৃত্তি করতে সাহায্য করে।
- forEach এবং map: CoffeeScript-এ অ্যারে মেথড
forEachএবংmapব্যবহার করে iteration সহজ করা যায়। - Breaking and Continuing: লুপের মধ্যে
breakএবংcontinueব্যবহার করে iteration নিয়ন্ত্রণ করা যায়।
CoffeeScript-এর Advanced Iteration Techniques-এর মাধ্যমে আপনি আপনার কোডকে আরও কার্যকরী এবং সংক্ষিপ্ত করতে পারবেন, যা কোড লেখার অভিজ্ঞতাকে উন্নত করে।
Read more