Hashes রুবি ভাষায় একটি অত্যন্ত শক্তিশালী ডেটা স্ট্রাকচার, যা Key-Value পেয়ার ধারণ করে। এটি এমন এক ধরনের অ্যাসোসিয়েটিভ অ্যারে (associative array) যেখানে Key (কী) এবং Value (মান) জোড়া হিসেবে সংরক্ষিত থাকে। Hash ব্যবহার করে আপনি বিভিন্ন ধরনের তথ্য স্টোর করতে পারেন এবং সেগুলোর উপর বিভিন্ন ধরনের অপারেশন করতে পারেন।
১. Hash তৈরি করা
রুবিতে একটি Hash তৈরি করতে সাধারণত {} ব্যবহার করা হয়, এবং Key-Value পেয়ার দুটি কোলন (:) দিয়ে আলাদা করা হয়।
উদাহরণ:
person = { name: "John", age: 30, city: "New York" }এখানে, name, age, এবং city হল Key, এবং "John", 30, এবং "New York" হল তাদের সংশ্লিষ্ট Value।
২. Hash এ নতুন Key-Value পেয়ার যোগ করা
Hash এ নতুন Key-Value পেয়ার যোগ করতে সরাসরি []= সিম্বল ব্যবহার করা হয়।
উদাহরণ:
person = { name: "John", age: 30 }
person[:city] = "New York" # নতুন Key-Value পেয়ার যোগ করা হচ্ছে
puts personআউটপুট:
{name: "John", age: 30, city: "New York"}এখানে, :city একটি নতুন Key হিসেবে যোগ করা হয়েছে এবং "New York" তার Value।
৩. Hash থেকে Value অ্যাক্সেস করা
Key ব্যবহার করে আপনি Value অ্যাক্সেস করতে পারেন।
উদাহরণ:
person = { name: "John", age: 30, city: "New York" }
puts person[:name] # Output: John
puts person[:age] # Output: 30এখানে, person[:name] দিয়ে আমরা "John" এই Value পেয়ে যাচ্ছি।
৪. Hash এ Key-Value পেয়ার চেক করা
আপনি Hash এ কোনো Key আছে কিনা তা চেক করতে .key? অথবা .has_key? মেথড ব্যবহার করতে পারেন।
উদাহরণ:
person = { name: "John", age: 30, city: "New York" }
puts person.key?(:age) # Output: true
puts person.has_key?(:city) # Output: true
puts person.key?(:country) # Output: falseএখানে, :age এবং :city কীগুলি Hash-এ আছে, কিন্তু :country নেই।
৫. Value Update বা পরিবর্তন করা
Hash এ Value আপডেট করতে আপনি সহজেই সংশ্লিষ্ট Key ব্যবহার করতে পারেন।
উদাহরণ:
person = { name: "John", age: 30, city: "New York" }
person[:age] = 31 # Value পরিবর্তন করা হচ্ছে
puts person[:age] # Output: 31এখানে, person[:age] এর মান "30" থেকে "31" পরিবর্তন করা হয়েছে।
৬. Hash থেকে Key-Value পেয়ার মুছে ফেলা
Key-Value পেয়ার মুছে ফেলার জন্য .delete মেথড ব্যবহার করা হয়। এটি নির্দিষ্ট Key অনুসারে তার সংশ্লিষ্ট Value মুছে দেয়।
উদাহরণ:
person = { name: "John", age: 30, city: "New York" }
person.delete(:city) # :city Key এর Value মুছে ফেলা হচ্ছে
puts personআউটপুট:
{name: "John", age: 30}এখানে, :city Key-Value পেয়ারটি মুছে ফেলা হয়েছে।
৭. All Keys বা All Values বের করা
আপনি Hash-এর সমস্ত Keys বা Values পেতে .keys এবং .values মেথড ব্যবহার করতে পারেন।
উদাহরণ:
person = { name: "John", age: 30, city: "New York" }
puts person.keys # Output: [:name, :age, :city]
puts person.values # Output: ["John", 30, "New York"]এখানে, person.keys দিয়ে সমস্ত Key এবং person.values দিয়ে সমস্ত Value বের করা হয়েছে।
৮. Hash Iteration
আপনি Hash এর মধ্যে Key-Value পেয়ারগুলির উপর লুপ চালাতে .each মেথড ব্যবহার করতে পারেন।
উদাহরণ:
person = { name: "John", age: 30, city: "New York" }
person.each do |key, value|
puts "#{key}: #{value}"
endআউটপুট:
name: John
age: 30
city: New Yorkএখানে, .each মেথড ব্যবহার করে Hash এর সব Key-Value পেয়ার চেক করা হয়েছে এবং আউটপুটে দেখানো হয়েছে।
৯. Default Values ব্যবহার করা
রুবি Hash-এ default value সেট করা যায়, যা কোনো Key না পাওয়া গেলে সেই default value ব্যবহার হবে।
উদাহরণ:
person = Hash.new("Unknown") # Default value "Unknown"
person[:name] = "John"
person[:age] = 30
puts person[:name] # Output: John
puts person[:city] # Output: Unknown (since city key is not defined)এখানে, person[:city] Key-Value পেয়ারটি না থাকা সত্ত্বেও "Unknown" আউটপুট হয়েছে, কারণ আমরা Hash-এ default value "Unknown" সেট করেছি।
সারসংক্ষেপ
- Hash রুবির একটি ডেটা স্ট্রাকচার যা Key-Value পেয়ার হিসেবে ডেটা সংরক্ষণ করে।
- Key-Value পেয়ার যোগ করতে
[]=ব্যবহার করা হয়। - Value অ্যাক্সেস করতে Key ব্যবহার করা হয়।
.key?,.has_key?ইত্যাদি মেথড দিয়ে Key চেক করা যায়।- Value পরিবর্তন করতে সরাসরি Key ব্যবহার করে নতুন মান অ্যাসাইন করা হয়।
.deleteমেথড দিয়ে Key-Value পেয়ার মুছে ফেলা যায়।.keysএবং.valuesমেথড দিয়ে Hash এর সব Key বা Value পাওয়া যায়।.eachমেথড দিয়ে Hash এর সব Key-Value পেয়ারগুলির উপর লুপ চালানো যায়।
এইভাবে, রুবিতে Hashes ব্যবহার করে আমরা ডেটার জটিল স্টোরেজ এবং দ্রুত অ্যাক্সেস নিশ্চিত করতে পারি।
Read more