الفرق بين المراجعتين لصفحة: «Ruby/Hash/fetch»

من موسوعة حسوب
< Ruby‏ | Hash
إنشاء الصفحة.
 
إضافة محتويات الصفحة.
 
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Hash]]
[[تصنيف: Ruby Hash]]
يعيد التابع <code>fetch</code> ت
يعيد التابع <code>fetch</code> قيمة من الكائن <code>[[Ruby/Hash|Hash]]</code> لمفتاح معين. إذا كان المفتاح غير موجود، هناك عدة خيارات متاحة لتطبيقها وهي:
* مع عدم تمرير معاملات أخرى غير المفتاح، سيُرمَى الاستثناء <code>[[Ruby/KeyError|KeyError]]</code>.
* إذا مُرِّرت قيمة أخرى بعد المفتاح، فستُعاد هذه القيمة على أساس أنها قيمة افتراضية.
* إذا أعطيت الكتلة الاختيارية، فستُنفَّذ وتُعاد نتيجتها.
 
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">fetch(key [, default] ) → obj
<syntaxhighlight lang="ruby">fetch(key [, default] ) → obj
fetch(key) {| key | block } → obj</syntaxhighlight>
fetch(key) {| key | block } → obj</syntaxhighlight>
==المعاملات==
==المعاملات==
=== <code>key</code> ===
المفتاح المراد جلب القيمة المرتبطة به في الكائن <code>[[Ruby/Hash|Hash]]</code>.
=== <code>default</code> ===
القيمة الافتراضية التي ستُعاد إن لم يُعثر على المفتاح <code>key</code>.


==القيمة المعادة==
==القيمة المعادة==
تعاد  
تعاد قيمة المفتاح <code>key</code> من الكائن [[Ruby/Hash|<code>Hash</code>]] المعطى. إذا كان المفتاح غير موجود، فهنالك عدة خيارات للقيمة المعادة هي:
* مع عدم تمرير معاملات أخرى غير المفتاح، سيُرمَى الاستثناء <code>[[Ruby/KeyError|KeyError]]</code>.
* إذا مُرِّرت قيمة أخرى بعد المفتاح، فستُعاد هذه القيمة على أساس أنها قيمة افتراضية.
* إذا أعطيت الكتلة الاختيارية، فستُنفَّذ وتُعاد نتيجتها.


== أمثلة ==
مثال على استعمال التابع <code>fetch</code>:<syntaxhighlight lang="ruby">
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"
</syntaxhighlight>يُظهِر المثال التالي كيفية رمي استثناء إذا كان المفتاح غير موجود ولم تُعطَ قيمة افتراضية:<syntaxhighlight lang="ruby">
h = { "a" => 100, "b" => 200 }
h.fetch("z")
</syntaxhighlight>يُنتِج:<syntaxhighlight lang="text">
prog.rb:2:in `fetch': key not found (KeyError)
from prog.rb:2
</syntaxhighlight>
==انظر أيضا==
==انظر أيضا==
*  
* التابع <code>[[Ruby/Hash/fetch values|fetch_values]]</code>: يعيد مصفوفة تحتوي على القيم المقترنة بالمفاتيح المعطاة.


==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Hash.html#method-i-fetch قسم التابع fetch في الصنف Hash في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Hash.html#method-i-fetch قسم التابع fetch في الصنف 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: يعيد مصفوفة تحتوي على القيم المقترنة بالمفاتيح المعطاة.

مصادر