التابع Hash.fetch في روبي

من موسوعة حسوب
< Ruby‏ | Hash
مراجعة 13:19، 26 نوفمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (إضافة محتويات الصفحة.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يعيد التابع fetch قيمة من الكائن Hash لمفتاح معين. إذا كان المفتاح غير موجود، هناك عدة خيارات متاحة لتطبيقها وهي:

  • مع عدم تمرير معاملات أخرى غير المفتاح، سيُرمَى الاستثناء KeyError.
  • إذا مُرِّرت قيمة أخرى بعد المفتاح، فستُعاد هذه القيمة على أساس أنها قيمة افتراضية.
  • إذا أعطيت الكتلة الاختيارية، فستُنفَّذ وتُعاد نتيجتها.

البنية العامة

fetch(key [, default] )  obj
fetch(key) {| key | block }  obj

المعاملات

key

المفتاح المراد جلب القيمة المرتبطة به في الكائن Hash.

default

القيمة الافتراضية التي ستُعاد إن لم يُعثر على المفتاح key.

القيمة المعادة

تعاد قيمة المفتاح key من الكائن Hash المعطى. إذا كان المفتاح غير موجود، فهنالك عدة خيارات للقيمة المعادة هي:

  • مع عدم تمرير معاملات أخرى غير المفتاح، سيُرمَى الاستثناء KeyError.
  • إذا مُرِّرت قيمة أخرى بعد المفتاح، فستُعاد هذه القيمة على أساس أنها قيمة افتراضية.
  • إذا أعطيت الكتلة الاختيارية، فستُنفَّذ وتُعاد نتيجتها.

أمثلة

مثال على استعمال التابع fetch:

h = { "a" => 100, "b" => 200 }
h.fetch("a")                            #=> 100
h.fetch("z", "go fish")                 #=> "go fish"
h.fetch("z") { |el| "go fish, #{el}"}   #=> "go fish, z"

يُظهِر المثال التالي كيفية رمي استثناء إذا كان المفتاح غير موجود ولم تُعطَ قيمة افتراضية:

h = { "a" => 100, "b" => 200 }
h.fetch("z")

يُنتِج:

prog.rb:2:in `fetch': key not found (KeyError)
 from prog.rb:2

انظر أيضا

  • التابع fetch_values: يعيد مصفوفة تحتوي على القيم المقترنة بالمفاتيح المعطاة.

مصادر