রুবি একটি ডাইনামিক এবং অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং ভাষা, যেখানে ডেটা সংরক্ষণ ও সংগঠনের জন্য Arrays এবং Hashes ব্যবহৃত হয়। এগুলি ডেটার সংগ্রহ হিসেবে কাজ করে, তবে তাদের স্ট্রাকচার এবং ব্যবহার ভিন্ন। নিচে Arrays এবং Hashes এর মৌলিক ধারণা, ব্যবহার এবং পার্থক্য আলোচনা করা হলো।
Arrays (এ্যারেগেট)
Arrays রুবিতে একটি সিকোয়েন্স ডেটা স্ট্রাকচার, যা একাধিক উপাদান (এলিমেন্ট) ধারন করতে পারে। প্রতিটি উপাদানের একটি নির্দিষ্ট ইনডেক্স থাকে, এবং অ্যারের উপাদানগুলি ০ থেকে শুরু হয়ে সিকোয়েন্স অনুসারে অর্ডার করা থাকে।
Array ডিক্লারেশন
রুবিতে একটি অ্যারে তৈরি করতে স্কোয়ার ব্র্যাকেট [] ব্যবহার করা হয়।
সিনট্যাক্স:
array_name = [element1, element2, element3, ...]উদাহরণ:
fruits = ["apple", "banana", "cherry"]
puts fruits[0] # এটি "apple" আউটপুট করবেএখানে, fruits একটি অ্যারে, এবং এর প্রথম উপাদান "apple" ইনডেক্স 0 এ রয়েছে।
Array এর বৈশিষ্ট্য
- ইনডেক্সড: প্রতিটি উপাদান একটি নির্দিষ্ট ইনডেক্সে থাকে (ইনডেক্স ০ থেকে শুরু হয়)।
- অর্ডারড: অ্যারে উপাদানগুলি নির্দিষ্ট অর্ডারে রাখা হয়, অর্থাৎ, অ্যারে তৈরি করার সময় যে অর্ডারে উপাদানগুলি দেয়া হয়, তা বজায় থাকে।
- মিক্সড ডেটা টাইপস: এক একটি অ্যারে বিভিন্ন ধরনের ডেটা ধারণ করতে পারে।
আরেকটি উদাহরণ:
arr = [1, "banana", 3.14, true]
puts arr[1] # আউটপুট: "banana"
puts arr[2] # আউটপুট: 3.14এখানে, arr অ্যারেতে বিভিন্ন ধরনের ডেটা (ইন্টিজার, স্ট্রিং, ফ্লোট, বুলিয়ান) সংরক্ষিত আছে।
Hashes (হ্যাশ)
Hashes রুবিতে একটি কী-ভ্যালু পেয়ার ডেটা স্ট্রাকচার, যেখানে প্রতিটি উপাদান একটি কী এবং একটি সংশ্লিষ্ট মান (ভ্যালু) থাকে। এটি সাধারণত ডিকশনারি বা ম্যাপ এর মতো কাজ করে, যেখানে কীগুলি ব্যবহার করে মানগুলি খোঁজা হয়।
Hash ডিক্লারেশন
রুবিতে একটি হ্যাশ তৈরি করতে কোলন : এবং অ্যাসাইনমেন্ট => ব্যবহার করা হয়।
সিনট্যাক্স:
hash_name = {key1: value1, key2: value2, key3: value3, ...}উদাহরণ:
person = { "name" => "আজিজ", "age" => 25, "city" => "Dhaka" }
puts person["name"] # আউটপুট: "আজিজ"
puts person["age"] # আউটপুট: 25এখানে, person একটি হ্যাশ যেখানে তিনটি কী-ভ্যালু পেয়ার রয়েছে:
"name" => "আজিজ""age" => 25"city" => "Dhaka"
Hash এর বৈশিষ্ট্য
- কী-ভ্যালু পেয়ার: প্রতিটি উপাদান একটি কী (key) এবং একটি মান (value) নিয়ে গঠিত।
- অর্ডারড (Ruby 1.9 এবং তার পরবর্তী ভার্সন): হ্যাশে উপাদানগুলি ইনসার্ট হওয়ার অর্ডারে থাকে।
- মিক্সড ডেটা টাইপস: হ্যাশের কী এবং ভ্যালু বিভিন্ন ধরনের ডেটা ধারণ করতে পারে।
আরেকটি উদাহরণ:
employee = { id: 1001, name: "John", position: "Developer" }
puts employee[:name] # আউটপুট: "John"
puts employee[:position] # আউটপুট: "Developer"এখানে, employee একটি হ্যাশ যেখানে কীগুলি :name, :position ইত্যাদি এবং তাদের সংশ্লিষ্ট মানগুলি "John", "Developer"।
Arrays এবং Hashes এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Arrays | Hashes |
|---|---|---|
| ডেটা স্ট্রাকচার | সিকোয়েন্স ডেটা স্ট্রাকচার (ইনডেক্সড) | কী-ভ্যালু পেয়ার ডেটা স্ট্রাকচার |
| ইনডেক্সিং | ইনডেক্স নম্বর (0, 1, 2, ...) দিয়ে অ্যাক্সেস করা হয় | কী (key) দিয়ে অ্যাক্সেস করা হয় |
| অর্ডার | অর্ডার রাখা হয় (এলিমেন্ট ইনসার্ট করার অর্ডার) | রুবি 1.9 এবং পরবর্তী সংস্করণে অর্ডার রাখা হয় |
| ডেটা টাইপ | একই ধরনের ডেটা থাকতে পারে, তবে মিশ্রিত ডেটা ধারণ করতে পারে | কী এবং ভ্যালুর ডেটা টাইপ আলাদা হতে পারে |
সংক্ষেপ
- Arrays হল এমন একটি ডেটা স্ট্রাকচার যেখানে উপাদানগুলো একটি নির্দিষ্ট অর্ডারে থাকে এবং তাদের একটি ইনডেক্স থাকে।
- Hashes হল এমন একটি ডেটা স্ট্রাকচার যেখানে উপাদানগুলো কী-ভ্যালু পেয়ার হিসেবে থাকে এবং আপনি কীগুলির মাধ্যমে তাদের মান অ্যাক্সেস করতে পারেন।
উপরে দেয়া উদাহরণগুলোর মাধ্যমে আপনি দেখতে পাচ্ছেন, Arrays সাধারণত সিকোয়েন্স ডেটা সংরক্ষণ করে, এবং Hashes বিশেষভাবে কীগুলির মাধ্যমে তথ্য সংরক্ষণ ও অ্যাক্সেস করতে ব্যবহৃত হয়।
Read more