الفرق بين المراجعتين لصفحة: «Ruby/Hash/new»
جميل-بيلوني (نقاش | مساهمات) إضافة شرح |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
سطر 40: | سطر 40: | ||
* المعامل <code>[[Ruby/Hash/index|[]]]</code>: ينشئ جدول <code>[[Ruby/Hash|Hash]]</code> جديد ويضع فيه الكائنات المعطاة. | * المعامل <code>[[Ruby/Hash/index|[]]]</code>: ينشئ جدول <code>[[Ruby/Hash|Hash]]</code> جديد ويضع فيه الكائنات المعطاة. | ||
* التابع <code>[[Ruby/Hash/try convert|try_convert]]</code>: يحاول تحويل الكائن المُمرَّر إليه إلى النوع <code>[[Ruby/Hash|Hash]]</code> باستخدام التابع <code>[[Ruby/Hash/to hash|to_hash]]</code>. | * التابع <code>[[Ruby/Hash/try convert|try_convert]]</code>: يحاول تحويل الكائن المُمرَّر إليه إلى النوع <code>[[Ruby/Hash|Hash]]</code> باستخدام التابع <code>[[Ruby/Hash/to hash|to_hash]]</code>. | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Hash.html#method-c-new قسم التابع new في الصنف Hash في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/Hash.html#method-c-new قسم التابع new في الصنف Hash في توثيق روبي الرسمي.] |
مراجعة 07:41، 26 نوفمبر 2018
ينشئ التابع new
جدول Hash
جديد فارغ ثم يعيده. إذا أجريت بعد ذلك محاولة للوصول إلى مفتاح غير موجود وغير مرتبط بقيمة، فستعاد قيمة تعتمد على كيفية استدعاء التابع new
لإنشاء الجدول Hash
هذا.
البنية العامة
new → new_hash
new(obj) → new_hash
new {|hash, key| block } → new_hash
في الشكل الأول من التابع new
، تعيد أية محاولة للوصول إلى مفتاحٍ القيمة nil
. إذا أعطي المعامل obj
في الشكل الثاني، فستُستخدم قيمته وحدها كقيمة افتراضية لكافة القيم. أمَّا إذا حُدِدت كتلة كما فيا الشكل الثالث، فستُستدعى مع الكائن Hash
المُنشَأ آنذاك والمفتاح الذي أجريت محاول للوصول إليه، ويجب أن تعيد القيمة الافتراضية. ومن مسؤولية الكتلة أيضًا تخزين القيمة في الجدول Hash
إذا لزم الأمر.
المعاملات
obj
الكائن المراد تعيينه كقيمة افتراضية.
القيمة المعادة
يعاد كائن جديد فارغ من النوع Hash
.
أمثلة
مثال على استعمال التابع new
:
h = Hash.new("Go Fish")
h["a"] = 100
h["b"] = 200
h["a"] #=> 100
h["c"] #=> "Go Fish"
# تعيد الاستدعاءات التالية القيمة الافتراضية المحددة
h["c"].upcase! #=> "GO FISH"
h["d"] #=> "GO FISH"
h.keys #=> ["a", "b"]
# بينما تنشئ الاستدعاء التالية قيمة افتراضية في كل مرة
h = Hash.new { |hash, key| hash[key] = "Go Fish: #{key}" }
h["c"] #=> "Go Fish: c"
h["c"].upcase! #=> "GO FISH: C"
h["d"] #=> "Go Fish: d"
h.keys #=> ["c", "d"]
انظر أيضا
- المعامل
[]
: ينشئ جدولHash
جديد ويضع فيه الكائنات المعطاة. - التابع
try_convert
: يحاول تحويل الكائن المُمرَّر إليه إلى النوعHash
باستخدام التابعto_hash
.