কীভাবে হ্যাশে নতুন আইটেম যুক্ত করা যায়


177

আমি রুবিতে নতুন এবং ইতিমধ্যে বিদ্যমান হ্যাশগুলিতে কীভাবে নতুন আইটেম যুক্ত করতে হয় তা জানি না। উদাহরণস্বরূপ, আমি প্রথমে হ্যাশ নির্মাণ করি:

hash = {item1: 1}

এর পরে আইটেম 2 যুক্ত করতে চাইলে এর পরে আমার এই জাতীয় হ্যাশ রয়েছে:

{item1: 1, item2: 2}

আমি জানি না হ্যাশের কী পদ্ধতিটি করা উচিত, কেউ আমাকে সাহায্য করতে পারে?

উত্তর:


305

হ্যাশ তৈরি করুন:

hash = {:item1 => 1}

এটিতে একটি নতুন আইটেম যুক্ত করুন:

hash[:item2] = 2

7
মার্জ ব্যবহার করুন ! পদ্ধতি hash.merge!(item2: 2)থেকে একত্রীকরণ এবং মান সংরক্ষণ !
মাগুরী

3
@ মাগুড়ি যখন কেবলমাত্র একটি যুক্তি রয়েছে তার hash.merge!(item2: 2)তুলনায় ধীর গতিতে অভিনয় করেhash[:item2] = 2
রাহুল ডেস

72

আপনি যদি অন্য হ্যাশ থেকে নতুন আইটেম যুক্ত করতে চান - mergeপদ্ধতিটি ব্যবহার করুন :

hash = {:item1 => 1}
another_hash = {:item2 => 2, :item3 => 3}
hash.merge(another_hash) # {:item1=>1, :item2=>2, :item3=>3}

আপনার নির্দিষ্ট ক্ষেত্রে এটি হতে পারে:

hash = {:item1 => 1}
hash.merge({:item2 => 2}) # {:item1=>1, :item2=>2}

আপনি যখন কেবল একটি উপাদান যুক্ত করতে চান তখন এটি ব্যবহার করা বুদ্ধিমানের কাজ নয়।

মনোযোগ দিন যা mergeবিদ্যমান কীগুলির সাথে মানগুলি প্রতিস্থাপন করবে:

hash = {:item1 => 1}
hash.merge({:item1 => 2}) # {:item1=>2}

ঠিক মত hash[:item1] = 2

এছাড়াও আপনাকে মনোযোগ দিতে হবে যে mergeপদ্ধতিটি (অবশ্যই) হ্যাশ ভেরিয়েবলের মূল মানকে প্রভাবিত করে না - এটি একটি নতুন মার্জড হ্যাশ দেয়। আপনি যদি হ্যাশ ভেরিয়েবলের মান প্রতিস্থাপন করতে চান তবে merge!পরিবর্তে ব্যবহার করুন:

hash = {:item1 => 1}
hash.merge!({:item2 => 2})
# now hash == {:item1=>1, :item2=>2}

35

হ্যাশ.স্টোর (কী, মান) - হ্যাশটিতে একটি মূল-মান জুড়ি রাখে।

উদাহরণ:

hash   #=> {"a"=>9, "b"=>200, "c"=>4}
hash.store("d", 42) #=> 42
hash   #=> {"a"=>9, "b"=>200, "c"=>4, "d"=>42}

Documentation




4
hash_items = {:item => 1}
puts hash_items 
#hash_items will give you {:item => 1}

hash_items.merge!({:item => 2})
puts hash_items 
#hash_items will give you {:item => 1, :item => 2}

hash_items.merge({:item => 2})
puts hash_items 
#hash_items will give you {:item => 1, :item => 2}, but the original variable will be the same old one. 

0

হ্যাশ হিসাবে তৈরি করুন:

h = Hash.new
=> {}

এখন হ্যাশ হিসাবে inোকান:

h = Hash["one" => 1]

2
আপনি যদি এইভাবে একাধিক কী সন্নিবেশ করানোর চেষ্টা করেন তবে আপনি দেখতে পাবেন যে আপনি প্রতিবার আসলে একটি নতুন হ্যাশ তৈরি করছেন। সম্ভবত আপনি যা চান তা নয়। এবং যদি যে হয় আপনি যা চান তা, আপনি প্রয়োজন হবে না Hash.newঅংশ নির্বিশেষে, কারণ Hash[]ইতিমধ্যে একটি নতুন হ্যাশ তৈরি করছে।
ফিলোমোরি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.