রুবিতে Ranges একটি শক্তিশালী ফিচার, যা একটি সিকোয়েন্স (সীমাবদ্ধ) ডেটার মধ্যে ব্যবহৃত হয়। এটি একটি নির্দিষ্ট রেঞ্জের মধ্যে সংখ্যার সিকোয়েন্স তৈরি করতে বা স্ট্রিংয়ের মধ্যে ধারাবাহিক অক্ষর বেছে নিতে ব্যবহৃত হয়। রুবির রেঞ্জ বিভিন্ন ধরনের সিকোয়েন্স তৈরি করতে সহায়ক, যেমন সংখ্যার রেঞ্জ, স্ট্রিং বা চরিত্রের রেঞ্জ।
Ranges এর মৌলিক ধারণা
রুবির Range হল দুটি মানের মধ্যে সীমাবদ্ধ একটি সিকোয়েন্স। এই সিকোয়েন্সটি দুইটি মানের মধ্যে গঠিত হয়, যেমন শুরু এবং শেষ মান, এবং আপনি এর মধ্যে সকল মান অ্যাক্সেস করতে পারেন।
Ranges সাধারণত .. (inclusive range) এবং ... (exclusive range) সিনট্যাক্স দিয়ে তৈরি হয়:
..(inclusive range): শেষ মানসহ রেঞ্জ।...(exclusive range): শেষ মান ছাড়া রেঞ্জ।
Range এর Syntax
Inclusive Range (..)
এই রেঞ্জে শুরু এবং শেষ মান উভয়ই অন্তর্ভুক্ত থাকে।
সিনট্যাক্স:
start_value..end_valueExclusive Range (...)
এই রেঞ্জে শুরু মান অন্তর্ভুক্ত থাকে, কিন্তু শেষ মান অন্তর্ভুক্ত থাকে না।
সিনট্যাক্স:
start_value...end_valueRanges এর উদাহরণ
Inclusive Range (..):
# 1 থেকে 5 পর্যন্ত (শেষ মানসহ)
numbers = (1..5)
puts numbers.to_a # আউটপুট: [1, 2, 3, 4, 5]এখানে, 1..5 একটি ইনক্লুসিভ রেঞ্জ, যা ১ থেকে ৫ পর্যন্ত সমস্ত সংখ্যা অন্তর্ভুক্ত করে।
Exclusive Range (...):
# 1 থেকে 5 পর্যন্ত (শেষ মান ছাড়া)
numbers = (1...5)
puts numbers.to_a # আউটপুট: [1, 2, 3, 4]এখানে, 1...5 একটি এক্সক্লুসিভ রেঞ্জ, যা ১ থেকে ৪ পর্যন্ত সংখ্যাগুলো অন্তর্ভুক্ত করে, কিন্তু ৫ অন্তর্ভুক্ত হয় না।
Ranges ব্যবহার করা
Array বা List তৈরি করা:
রুবির রেঞ্জের মাধ্যমে আপনি সহজেই অ্যারে তৈরি করতে পারেন।উদাহরণ:
letters = ('a'..'e').to_a puts letters # আউটপুট: ["a", "b", "c", "d", "e"]এখানে,
'a'..'e'একটি রেঞ্জ তৈরি করে যা 'a' থেকে 'e' পর্যন্ত সমস্ত অক্ষর অন্তর্ভুক্ত করে।Ranges ব্যবহার করে লুপ চালানো:
আপনি রেঞ্জের মাধ্যমে লুপ চালিয়ে সিকোয়েন্সের প্রতিটি উপাদান প্রক্রিয়া করতে পারেন।উদাহরণ:
(1..5).each do |num| puts num endআউটপুট হবে:
1 2 3 4 5Conditionals ব্যবহার করা:
রেঞ্জকে একটি কন্ডিশনে ব্যবহার করা যেতে পারে, যেমন চেক করা যে একটি ভ্যালু রেঞ্জের মধ্যে আছে কিনা।উদাহরণ:
age = 20 if (18..30).include?(age) puts "Age is within range" else puts "Age is out of range" endআউটপুট হবে:
Age is within range
Ranges এর অন্যান্য ব্যবহার
Negative Numbers এবং Floats:
রুবির রেঞ্জে শুধু পুরোসংখ্যা নয়, নেতিবাচক সংখ্যা এবং ভাসমান সংখ্যাও ব্যবহার করা যেতে পারে।উদাহরণ:
negative_range = (-5..0) puts negative_range.to_a # আউটপুট: [-5, -4, -3, -2, -1, 0]ফ্লোটিং পয়েন্ট:
float_range = (1.1..2.0) puts float_range.to_a # আউটপুট: [1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0]Ranges with Characters:
স্ট্রিং বা চরিত্রের রেঞ্জও ব্যবহার করা যায়।উদাহরণ:
char_range = ('a'..'e') puts char_range.to_a # আউটপুট: ["a", "b", "c", "d", "e"]
Ranges এর কিছু গুরুত্বপূর্ণ ফিচার
- Ranges can be used in conditionals: রেঞ্জটি সহজে কন্ডিশনাল স্টেটমেন্টে ব্যবহার করা যেতে পারে, যেমন চেক করা যে একটি মান রেঞ্জের মধ্যে আছে কিনা।
- Ranges can be converted to arrays: রেঞ্জকে অ্যারে (Array) এ রূপান্তর করা যায়
.to_aমেথড ব্যবহার করে। - Ranges are efficient: রুবি রেঞ্জ অত্যন্ত কার্যকরী এবং এর মধ্যে যে উপাদানগুলি অন্তর্ভুক্ত থাকবে তা স্বয়ংক্রিয়ভাবে প্রজেক্ট হয়, তাই মেমরি ব্যবস্থাপনাও দক্ষ হয়।
সারসংক্ষেপ
- Inclusive Range (
..): শেষ মান সহ রেঞ্জ। - Exclusive Range (
...): শেষ মান ছাড়া রেঞ্জ। - রুবিতে Ranges ব্যবহারের মাধ্যমে আপনি একটি নির্দিষ্ট রেঞ্জে থাকা ডেটা ধারণ করতে পারেন এবং এটি বিভিন্ন অ্যাকশন বা লজিক্যাল অপারেশন তৈরিতে সাহায্য করে।
Read more