روبي التجزئة (التجزئة)
التجزئة (التجزئة) مشابهة ل"مفتاح" => "قيمة" من هذه المجموعة من أزواج قيمة المفتاح. على غرار مجموعة التجزئة، لكنه لا يقتصر على استخدام الأرقام القياسية.
مؤشر التجزئة (أو "مفتاح") يمكن أن يكون ما يقرب من أي كائن.
مجموعة هاش على الرغم من أن ما شابه ذلك، ولكن هناك فرق مهم جدا: عناصر تجزئة ليست في ترتيب معين. إذا كان النظام هو المهم، ثم يجب عليك استخدام مجموعة.
خلق تجزئة
مثل مجموعة، مجموعة متنوعة من الطرق المختلفة لخلق تجزئة. يمكنك إنشاء تجزئة فارغة من خلال أسلوب فئةجديدة:
months = Hash.new
يتم إنشاء يمكنك أيضا استخدام تجزئةجديدةمع القيم الافتراضية، دون تجزئة القيمة الافتراضية هيلا شيء:
months = Hash.new( "month" ) 或 months = Hash.new "month"
عند الوصول إلى تجزئة مع القيم الافتراضية في أي مفتاح، إذا كان مفتاح أو قيمة غير موجود، يعود إلى قيمة صول التجزئة الافتراضي:
#!/usr/bin/ruby months = Hash.new( "month" ) puts "#{months[0]}" puts "#{months[72]}"
تشغيل إخراج المثال أعلاه هو:
month month
#!/usr/bin/ruby H = Hash["a" => 100, "b" => 200] puts "#{H['a']}" puts "#{H['b']}"
تشغيل إخراج المثال أعلاه هو:
100 200
يمكنك استخدام أي كائن روبي كمفتاح أو قيمة، أو يمكن استخدام مجموعة، كما هو مبين في المثال:
[1,"jan"] => "January"
تجزئة أسلوب مضمنة
إذا كنت بحاجة إلى استدعاء الأسلوب تجزئة، تحتاج إلى مثيل كائن تجزئة. هنا هو وسيلة لإنشاء مثيل كائن تجزئة:
Hash[[key =>|, value]* ] or Hash.new [or] Hash.new(obj) [or] Hash.new { |hash, key| block }
هذا وسيعود كائن معطى مليئة تجزئة جديدة. الآن، باستخدام كائنات خلقت، يمكن أن نطلق أي من الطرق المتاحة. على سبيل المثال:
#!/usr/bin/ruby $, = ", " months = Hash.new( "month" ) months = {"1" => "January", "2" => "February"} keys = months.keys puts "#{keys}"
تشغيل إخراج المثال أعلاه هو:
["1", "2"]
وفيما يلي طريقة تجزئة مشترك (على افتراض كائن تجزئةالتجزئة):
لا. | طريقة ووصف |
---|---|
1 | التجزئة == other_hash تحقق ما إذا كان لهما نفس القيمة مفتاح الشباك ليقابل عددا من أزواج قيمة المفتاح مع بعضها البعض لتحديد ما إذا كانت التجزئة هما على قدم المساواة. |
2 | التجزئة. [مفتاح] استخدام القيم المرجعية الرئيسية من التجزئة. إذا لم يتم العثور على المفتاح، ثم العودة إلى القيم الافتراضية. |
3 | التجزئة. [مفتاح] = قيمة قيمةنظرا للقيمةالمفتاحالمرتبطة مفتاح معين. |
4 | hash.clear إزالة كافة المفاتيح من التجزئة. |
5 | hash.default (مفتاح = لا شيء) إرجاع القيمة الافتراضيةللتجزئة،إن لم يكن تعيين افتراضيا =، يعود لا شيء. (إذا لم يكن موجودا المفتاح فيالتجزئة،ثم [] إرجاع القيمة الافتراضية.) |
6 | hash.default = الكائنات تعيين القيم الافتراضيةللتجزئة. |
7 | hash.default_proc إذاتجزئةخلقت من قبل كتلة عاد كتلة. |
8 | hash.delete (مفتاح) [أو] array.delete (مفتاح) {| مفتاح | كتلة} إزالة من مفتاحالشباكقبل الزوجالرئيسيين.إذا كانت كتلة ولم تجد مطابقة أزواج قيمة المفتاح، نتائج كتلة يتم إرجاع. قارن ذلك معdelete_if. |
9 | hash.delete_if {| مفتاح، قيمة | كتلة } صحيحلكل كتلة من الكتلة، حذفالمفتاحمنالتجزئة. |
10 | hash.each {| مفتاح، قيمة | كتلة } اجتيازالتجزئة، ودعامرة واحدة لكل كتلةرئيسيا،وتمرير القيمة الرئيسية على النحو صفيف عنصر اثنين. |
11 | hash.each_key {| مفتاح | كتلة} اجتيازالتجزئة، ودعامرة واحدة لكل كتلةرئيسيا،وتمريرمفتاحكمعلمة. |
12 | hash.each_key {| key_value_array | كتلة} اجتيازالتجزئة، ودعامرة واحدة لكل كتلةرئيسيا،وتمريرمفتاحوقيمة كوسائط. |
13 | hash.each_value {| قيمة | كتلة} اجتيازالتجزئة، ودعامرة واحدة لكل كتلةرئيسية،مرتكقيمة معلمة. |
14 | hash.empty؟ تحقق ما إذا كان التجزئة فارغة (لا يحتوي على أزواج قيمة المفتاح)، يعودصحيحةأوخاطئة. |
15 | hash.fetch (مفتاح [، والتقصير]) [أو] hash.fetch (مفتاح) {| مفتاح | كتلة} قيمة الإرجاع منالتجزئةمن خلالمفتاح معين.إذا كنت لا تجدالمفتاح،ولم توفر معلمات إضافية، ورمي استثناءIndexError،وإذا أعطيتالافتراضي،يعودالافتراضي، وإذاكان كتلة اختياري، يتم إرجاع نتيجة كتلة. |
16 | hash.has_key؟ (مفتاح) [أو] hash.include؟ (مفتاح) [أو] hash.key؟ (مفتاح) [أو] hash.member؟ (مفتاح) معرفة ما اذا كانوجود مفتاحمعين في التجزئة، يعودصحيحةأوخاطئة. |
17 | hash.has_value؟ (قيمة) تحقق ما إذا كان التجزئة تحتوي علىقيمة معينة. |
18 | hash.index (قيمة) عودةلقيمةمعينة منمفتاح الشباك،عوائد إذا تم العثور على أي تطابقالنيل. |
19 | hash.indexes (مفاتيح) تقوم بإرجاع مجموعة جديدة من خلال قيمة مكونات رئيسية معينة. لا يمكن العثور على مفتاح لإدراج القيمة الافتراضية. لقد تم إهمال هذه الطريقة، يرجى استخدام اختر. |
20 | hash.indices (مفاتيح) تقوم بإرجاع مجموعة جديدة من خلال قيمة مكونات رئيسية معينة. لا يمكن العثور على مفتاح لإدراج القيمة الافتراضية. لقد تم إهمال هذه الطريقة، يرجى استخدام اختر. |
21 | hash.inspect الخلفية طباعة التجزئة نسخة السلسلة. |
22 | hash.invert إنشاء انعكاسالتجزئة،تجزئة جديدة منالمفاتيحوالقيم. وبعبارة أخرى، فإنتجزئة جديدة،قيمة التجزئة تصبح مفتاح، وسوف تصبح قيمة المفتاح. |
23 | hash.keys إنشاء مجموعة جديدة مع مفتاحالشباك./ td> |
24 | hash.length تقوم بإرجاع حجمتجزئةصحيح أو طول. |
25 | hash.merge (other_hash) [أو] hash.merge (other_hash) {| مفتاح، oldval، newval | كتلة} إرجاع تجزئة جديدة،تجزئةيحتوي على المحتوىوother_hashيعيد كتابة التجزئة الرئيسية معother_hashمع زوج مفتاح مكررة. |
26 | hash.merge! (other_hash) [أو] hash.merge (other_hash)! {| مفتاح ، oldval، newval | كتلة} ودمج نفسه، ولكن في الواقع لم يتغير التجزئة. |
27 | hash.rehash إعادة تأسيسالتجزئةعلى أساس القيمة الحالية لكلمفتاح.إذا قمت بإدراج تغير قيمة، فإن العملية سوف تكونتجزئةإعادةفهرسة. |
28 | hash.reject {| مفتاح، قيمة | كتلة } كماينطبقعلى كلكتلةرئيسية لإنشاءتجزئة جديدة. |
29 | hash.reject! {| مفتاح، قيمة | كتلة} ورفضنفسه، ولكن في الواقع لم يتغير التجزئة. |
30 | hash.replace (other_hash) استبدال محتوياتتجزئةother_hash المحتوى. |
31 | hash.select {| مفتاح، قيمة | كتلة } إرجاع مجموعة جديدة،كتلةبإرجاع القيم مفتاحالشباكالحقيقية في أزواج. |
32 | hash.shift إزالة منتجزئةفي زوج مفاتيح ويرسل قيمة المفتاح عاد كما صفيف عنصر اثنين. |
33 | hash.size تقوم بإرجاع عدد صحيحالتجزئةحجم أو الطول. |
34 | hash.sort يتم تحويلالتجزئةلمجموعة ثنائية الأبعاد التي تحتوي على مجموعة قيمة المفتاح وثم فرزها. |
35 | hash.store (مفتاح، القيمة) تجزئةمخزنة في زوج قيمة المفتاح. |
36 | hash.to_a إنشاء مجموعة ثنائية الأبعاد من التجزئة. كل زوج المفاتيح ذات قيمة في صفيف، يتم تخزين كل هذه المصفوفات في صفيف. |
37 | hash.to_hash عوائدالتجزئة (النفس). |
38 | hash.to_s يتم تحويلالتجزئةلمجموعة، ثم يتم تحويل مجموعة إلى سلسلة. |
39 | hash.update (other_hash) [أو] hash.update (other_hash) {| مفتاح، oldval، newval | كتلة} إرجاع تجزئة جديدة،تجزئةيحتوي على المحتوىوother_hashيعيد كتابةالتجزئةالرئيسية معother_hashمع زوج مفتاح مكررة. |
40 | hash.value؟ (قيمة) تحقق ما إذا كانالتجزئةتحتوي علىقيمة معينة. |
41 | hash.values تقوم بإرجاع مجموعة جديدة تحتوي على جميع القيمللتجزئة. |
42 | hash.values_at (الكائنات، ...) تقوم بإرجاع مجموعة جديدة تحتوي على قيمةالتجزئةالمرتبطة مع مفتاح معين. |