রুবি প্রোগ্রামিং ভাষায় Arrays এবং Hashes অত্যন্ত গুরুত্বপূর্ণ ডেটা স্ট্রাকচার, এবং এগুলির উপর বিভিন্ন iteration techniques ব্যবহার করে তাদের উপাদানগুলোর উপর কাজ করা যায়। রুবি ইনবিল্ট iterators প্রদান করে যেগুলি অ্যারে এবং হ্যাশের উপাদানগুলোর উপর বিভিন্ন কার্যকরী পদ্ধতিতে কাজ করতে সাহায্য করে।
১. Arrays এর সাথে Iteration Techniques
Arrays হলো একটি সাজানো ডেটা সংগ্রহ, যেখানে উপাদানগুলো ইনডেক্স দ্বারা অ্যাক্সেস করা যায়। রুবিতে অ্যারে ইটারেট করার জন্য বিভিন্ন ধরনের পদ্ধতি রয়েছে।
১.১ each Method (প্রতি উপাদান)
each মেথড অ্যারের প্রতিটি উপাদানকে প্রক্রিয়া করার জন্য ব্যবহৃত হয়। এটি একটি ব্লক পাস করে, যা প্রতিটি উপাদান প্রক্রিয়া করতে সাহায্য করে।
arr = [1, 2, 3, 4, 5]
arr.each do |num|
puts num * 2
end
# আউটপুট:
# 2
# 4
# 6
# 8
# 10১.২ map Method (নতুন অ্যারে তৈরি করা)
map মেথড অ্যারের প্রতিটি উপাদান পরিবর্তন করে এবং নতুন একটি অ্যারে তৈরি করে।
arr = [1, 2, 3, 4, 5]
new_arr = arr.map { |num| num * 2 }
puts new_arr.inspect
# আউটপুট: [2, 4, 6, 8, 10]১.৩ select Method (চয়ন করা)
select মেথড এমন উপাদানগুলো বেছে নেয় যেগুলি একটি নির্দিষ্ট শর্ত পূর্ণ করে।
arr = [1, 2, 3, 4, 5, 6]
even_numbers = arr.select { |num| num.even? }
puts even_numbers.inspect
# আউটপুট: [2, 4, 6]১.৪ each_with_index Method (ইন্ডেক্স সহ ইটারেশন)
each_with_index মেথড প্রতিটি উপাদানের সাথে সাথে তার ইনডেক্সও প্রদান করে।
arr = ["a", "b", "c", "d"]
arr.each_with_index do |value, index|
puts "Index #{index}: #{value}"
end
# আউটপুট:
# Index 0: a
# Index 1: b
# Index 2: c
# Index 3: d২. Hashes এর সাথে Iteration Techniques
Hashes হল একটি অর্ডারহীন ডেটা সংগ্রহ যেখানে key-value pairs ধারণ করা হয়। রুবিতে হ্যাশ ইটারেট করার জন্য অনেক শক্তিশালী পদ্ধতি রয়েছে।
২.১ each Method (প্রতি কী-ভ্যালু)
each মেথড হ্যাশের প্রতিটি কী-ভ্যালু জোড়া (key-value pair) প্রক্রিয়া করার জন্য ব্যবহৃত হয়।
hash = { name: "John", age: 30, city: "New York" }
hash.each do |key, value|
puts "#{key}: #{value}"
end
# আউটপুট:
# name: John
# age: 30
# city: New York২.২ select Method (চয়ন করা)
select মেথড হ্যাশের এমন কী-ভ্যালু জোড়া নির্বাচন করতে ব্যবহৃত হয় যা একটি নির্দিষ্ট শর্ত পূর্ণ করে।
hash = { name: "John", age: 30, city: "New York" }
filtered_hash = hash.select { |key, value| key == :age }
puts filtered_hash.inspect
# আউটপুট: {:age=>30}২.৩ map Method (নতুন হ্যাশ তৈরি করা)
map মেথড ব্যবহার করে আপনি হ্যাশের কী-ভ্যালু জোড়া পরিবর্তন করে একটি নতুন হ্যাশ তৈরি করতে পারেন।
hash = { a: 1, b: 2, c: 3 }
new_hash = hash.map { |key, value| [key, value * 2] }.to_h
puts new_hash.inspect
# আউটপুট: {:a=>2, :b=>4, :c=>6}২.৪ each_key Method (কী-ভিত্তিক ইটারেশন)
each_key মেথড শুধুমাত্র হ্যাশের কী গুলি ইটারেট করে।
hash = { name: "John", age: 30, city: "New York" }
hash.each_key do |key|
puts key
end
# আউটপুট:
# name
# age
# city২.৫ each_value Method (ভ্যালু-ভিত্তিক ইটারেশন)
each_value মেথড শুধুমাত্র হ্যাশের ভ্যালুগুলি ইটারেট করে।
hash = { name: "John", age: 30, city: "New York" }
hash.each_value do |value|
puts value
end
# আউটপুট:
# John
# 30
# New Yorkসারসংক্ষেপ
- Arrays (অ্যারে) ইটারেট করার জন্য
each,map,select,each_with_indexইত্যাদি মেথড ব্যবহার করা হয়। - Hashes (হ্যাশ) ইটারেট করার জন্য
each,select,map,each_key,each_valueইত্যাদি মেথড ব্যবহার করা হয়। eachসাধারণত প্রতিটি উপাদান বা কী-ভ্যালু জোড়া প্রক্রিয়া করার জন্য ব্যবহৃত হয়।mapনতুন অ্যারে বা হ্যাশ তৈরি করতে ব্যবহৃত হয়।selectএকটি শর্তের ভিত্তিতে উপাদান বা কী-ভ্যালু নির্বাচন করতে ব্যবহৃত হয়।
এই ইটারেশন টেকনিকগুলো রুবির শক্তিশালী বৈশিষ্ট্য, যা অ্যারে এবং হ্যাশের উপর কার্যকরীভাবে কাজ করার সুবিধা প্রদান করে।
Read more