كيفية إنشاء واستخدام هاش في روبي

click fraud protection

المصفوفات ليست هي الطريقة الوحيدة لإدارة مجموعات المتغيرات في روبي. نوع آخر من مجموعة المتغيرات هو التجزئة، وتسمى أيضا مجموعة النقابي. يشبه التجزئة صفيفًا لأنه متغير يقوم بتخزين المتغيرات الأخرى. ومع ذلك ، فإن التجزئة لا يشبه الصفيف في أن المتغيرات المخزنة لا يتم تخزينها في أي ترتيب معين ، ويتم استردادها باستخدام مفتاح بدلاً من موضعها في المجموعة.

إنشاء تجزئة مع أزواج المفتاح / القيمة

تجزئة مفيدة لتخزين ما يسمى أزواج المفتاح / القيمة. يحتوي زوج المفتاح / القيمة على معرف للدلالة على أي متغير من التجزئة الذي تريد الوصول إليه و متغير لتخزين في هذا الموقف في التجزئة. على سبيل المثال ، قد يخزن المعلم درجات الطالب في علامة تجزئة. سيتم الوصول إلى علامة Bob في علامة تجزئة بواسطة المفتاح "Bob" ويكون المتغير المخزن في ذلك الموقع هو درجة Bob.

يمكن إنشاء متغير تجزئة بنفس طريقة متغير صفيف. إن أبسط طريقة هي إنشاء كائن تجزئة فارغ وملء أزواج المفتاح / القيمة. لاحظ أنه يتم استخدام معامل الفهرس ، لكن يتم استخدام اسم الطالب بدلاً من الرقم.

تذكر أن التجزئات غير مرتبة ، مما يعني أنه لا توجد بداية أو نهاية محددة كما هو الحال في صفيف. لذلك ، لا يمكنك إلحاق التجزئة. يتم إدراج القيم ببساطة في التجزئة باستخدام معامل الفهرس.

instagram viewer

#! / usr / bin / env ruby
الدرجات = Hash.new
الدرجات ["بوب"] = 82
الدرجات ["Jim"] = 94
الدرجات ["بيلي"] = 58
يضع الدرجات ["Jim"]

تجزئة الآداب

تمامًا مثل المصفوفات ، يمكن إنشاء التجزئة الحرفي. تستخدم حروف Hash الأقواس المتعرجة بدلاً من الأقواس المربعة ويتم ربط أزواج القيمة الرئيسية بها =>. على سبيل المثال ، ستبدو التجزئة التي تحتوي على زوج واحد من المفتاح / القيمة من Bob / 84 كما يلي: {"Bob" => 84}. يمكن إضافة أزواج مفتاح / قيمة إضافية إلى التجزئة الحرفية بفصلها بفواصل. في المثال التالي ، يتم إنشاء تجزئة بدرجات لعدد من الطلاب.

#! / usr / bin / env ruby
الدرجات = {"Bob" => 82 ،
"جيم" => 94 ،
"بيلي" => 58
}
يضع الدرجات ["Jim"]

الوصول إلى المتغيرات في التجزئة

قد تكون هناك أوقات يجب فيها الوصول إلى كل متغير في التجزئة. لا يزال بإمكانك حلقة فوق المتغيرات في التجزئة باستخدام كل حلقة ، على الرغم من أنها لن تعمل بنفس طريقة استخدام كل حلقة مع مجموعة المتغيرات. لأن التجزئة غير مرتبة ، الترتيب الذي كل سوف لا تتكرر أزواج المفاتيح / القيمة مع نفس الترتيب الذي أدخلته به. في هذا المثال ، سيتم تكرار تجزئة الدرجات وطباعتها.

#! / usr / bin / env ruby
الدرجات = {"Bob" => 82 ،
"جيم" => 94 ،
"بيلي" => 58
}
grades.each do | name، grade |
يضع "# {name}: # {grade}"
النهاية
instagram story viewer