English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
هش (Hash) هو مجموعة من القيم مرتبطة بالأعمدة (أو ما يُدعى "المفاتيح"). يشبه الهش (Hash) مجموعة، ولكن لا يقتصر على استخدام الأرقام كمراجع.
يمكن أن تكون أيضًا أي عنصر من الأشياء.
يختلف هش (Hash) عن المجموعات لأن عناصره ليست مرتبة بشكل محدد. إذا كانت الترتيب مهمًا، فعليك استخدام مجموعة.
مثل المجموعات، هناك العديد من الطرق لإنشاء هش (Hash). يمكنك إنشائه من خلال new يوجد العديد من الطرق لإنشاء هش (Hash) فارغ باستخدام طريقة دالة منفصلة:
months = Hash.new
يمكنك أيضًا استخدام new إنشاء مفسر مع القيمة الافتراضية، المفسر بدون القيمة الافتراضية هو}} nil:
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
يمكنك استخدام أي Object Ruby كمفتاح أو قيمة، حتى يمكنك استخدام قائمة، مثل المثال التالي:
[1, "jan"] => "January"
إذا كنت بحاجة إلى استدعاء طريقة Hash، فيجب أولاً تعيين Object Hash. إليك بعض الطرق لإنشاء Object Hash:
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"]
إليك بعض الطرق العامة للمفسر (افتراضًا،) الخوارزمية هو Object Hash):
الترتيب | الطريقة & الوصف |
---|---|
1 | hash == other_hash فحص ما إذا كان لديه نفس عدد المفاتيح القيم، وما إذا كانت المفاتيح القيم تتطابق مع بعضها البعض، لتحديد ما إذا كان المفسران متطابقين. |
2 | hash[key] استخدام المفتاح، استدعاء القيمة من المفسر. إذا لم يتم العثور على المفتاح، فإنها تعود بقيمة افتراضية. |
3 | hash[key]=value تحويل القيمة القيمة المحددة مع المفتاح رابط المفتاح المحدد. |
4 | hash.clear إزالة جميع المفاتيح القيم من المفسر. |
5 | hash.default(key = nil) يعيد الخوارزمية الافتراضية، إذا لم يتم ضبطها باستخدام default=، فإنها تعود بلا شيء。(إذا كان المفتاح موجوداً في الخوارزمية لا يتضمن، فإن [] يعود بقيمة افتراضية.) |
6 | hash.default = obj من الخوارزمية يُحدد القيمة الافتراضية. |
7 | hash.default_proc إذا الخوارزمية يتم العودة إلى block الذي تم إنشاؤه من خلال block. |
8 | hash.delete(key) [أو] array.delete(key) { |key| block } من خلال المفتاح من الخوارزمية من خلال إزالة زوجات المفاتيح القيم. إذا تم استخدام block ولم يتم العثور على زوجات المفاتيح القيم الم匹配ة، يتم العودة إلى نتيجة block. يتم مقارنتها مع delete_if للتحقق من |
9 | hash.delete_if { |key,value| block } block هو صحيح من كل الخوارزمية من خلال إزالة زوجات المفاتيح القيم. |
10 | hash.each { |key,value| block } مرور الخوارزمية، بالنسبة لكل المفتاح يتم استدعاء block مرة واحدة، يتم نقل مفتاح القيمة كعدد بيانات بيانيتين. |
11 | hash.each_key { |key| block } مرور الخوارزمية، بالنسبة لكل المفتاح يتم استدعاء block مرة واحدة، يتم نقل المفتاح كمعلمات. |
12 | hash.each_key { |key_value_array| block } مرور الخوارزمية، بالنسبة لكل المفتاح يتم استدعاء block مرة واحدة، يتم نقل المفتاح و القيمة كمعلمات. |
13 | hash.each_value { |value| block } مرور الخوارزمية، بالنسبة لكل المفتاح يتم استدعاء block مرة واحدة، يتم نقل القيمة كمعلمات. |
14 | hash.empty? يحقق ما إذا كان الفاتح فارغًا (لا يحتوي على زوجات المفاتيح القيم)، يتم العودة صحيح أو false. |
15 | hash.fetch(key [, default] ) [أو] hash.fetch(key) { | key | block } من خلال المفتاح من الخوارزمية القيمة العودة. إذا لم يتم العثور على المفتاح، ولا تم تقديم أي معلمات أخرى، يتم رمي IndexError استثنائية؛ إذا تم تقديم default، يتم العودة default؛ إذا تم تحديد block الإضافي، يتم العودة إلى نتيجة block. |
16 | hash.has_key?(key) [أو] hash.include?(key) [أو] hash.key?(key) [أو] hash.member?(key) يحقق ما إذا كان يحتوي على المفتاح هل يوجد في الفاتح، يتم العودة صحيح أو false. |
17 | hash.has_value?(value) يحقق ما إذا كان يحتوي على الفاتح المحدد القيمة. |
18 | hash.index(value) بالنسبة للفاتح المحدد القيمة يعيد القيمة من المفتاح، إذا لم يتم العثور على القيمة الم匹配ة، يتم العودة nil. |
19 | hash.indexes(keys) يعيد مجموعة جديدة مكونة من القيم المحددة للفاتح المحدد. إذا لم يتم العثور على الفاتح، يتم إدراج القيمة الافتراضية. تم إزالة هذه الطريقة، يرجى استخدام select. |
20 | hash.indices(keys) يعيد مجموعة جديدة مكونة من القيم المحددة للفاتح المحدد. إذا لم يتم العثور على الفاتح، يتم إدراج القيمة الافتراضية. تم إزالة هذه الطريقة، يرجى استخدام select. |
21 | 21 hash.inspect |
إعادة التبديل إلى نسخة نسخة من المفتاح-القيمة. | 22 hash.invert الخوارزميةإنشاء مصفوفة جديدة الخوارزمية عكس المفاتيح و القيمذلك، في المفتاح-القيمة الجديد،الخوارزمية المفاتيح ستصبح القيم، والقيم ستصبح المفاتيح. |
23 | hash.keys إنشاء مصفوفة جديدة تحتوي على الخوارزمية المفاتيح. |
24 | hash.length إعادة التبديل بشكل عددية الخوارزمية الحجم أو الطول. |
25 | hash.merge(other_hash) [أو] hash.merge(other_hash) { |key, oldval, newval| block } يعيد دالة جديدة تحتوي على الخوارزمية و other_hash المحتوى، وإعادة كتابة hash مع other_hash القيم الموجودة تحت المفتاح المكرر. |
26 | hash.merge!(other_hash) [أو] hash.merge!(other_hash) { |key, oldval, newval| block } مثل merge، ولكن في الواقع يحدث تغيير في hash. |
27 | hash.rehash بناءً على كل المفتاح إعادة الترتيب للقيمة الحالية الخوارزمية. إذا تغيرت القيمة بعد الإدراج، فإن هذا الأسلوب سيقوم بإعادة الترتيب. الخوارزمية. |
28 | hash.reject { |key, value| block } مثل delete_if، ولكن يطبق على نسخة من المفتاح-القيمة. يتم التبديل إلى hsh.dup.delete_if. |
29 | hash.reject! { |key, value| block } مثل delete_if، ولكن إذا لم يتم التعديل، يتم إعادة التبديل إلى nil. |
30 | hash.replace(other_hash) تحويل الخوارزمية المحتوى إلى other_hash المحتوى. |
31 | hash.select { |key, value| block } إعادة التبديل إلى مصفوفة جديدة تحتوي على الكائنات المكونة منها. الكتلة يعيد صحيح من الخوارزمية مكونة من الكائنات المفتاح-القيمة. |
32 | hash.shift من الخوارزمية إزالة كائن مفتاح-قيمة من بينها، وإعادة التبديل إلى مصفوفة من عناصرين. |
33 | hash.size إعادة التبديل بشكل عددية الخوارزمية من الحجم أو طول. |
34 | hash.sort تحويل الخوارزمية تحويل إلى مصفوفة ثنائية تحتوي على مصفوفات من الكائنات المفتاح-القيمة، ثم ترتيبها. |
35 | hash.store(key, value) تخزين الخوارزمية من بين الكائنات المفتاح-القيمة. |
36 | hash.to_a من إنشاء مصفوفة ثنائية من الـ hash. يتم تحويل كل كائن إلى زوج مفتاح-قيمة إلى مصفوفة، ويتم تخزين جميع هذه المصفوفات في مصفوفة واحدة. |
37 | hash.to_hash يعيد الخوارزمية(self). |
38 | hash.to_s تحويل الخوارزمية تحويلها إلى مصفوفة، ثم تحويل هذه المصفوفة إلى نص. |
39 | hash.update(other_hash) [أو] hash.update(other_hash) {|key, oldval, newval| block} يعيد دالة جديدة تحتوي على الخوارزمية و other_hash المحتوى، وإعادة كتابته الخوارزمية الموجودة تحت other_hash القيم الموجودة تحت المفتاح المكرر. |
40 | hash.value?(value) التحقق الخوارزمية هل تحتوي على القيمة المحددة القيمة. |
41 | القيم الخاصة بـ hash.values يعيد دالة جديدة تحتوي على الخوارزمية جميع القيم. |
42 | القيم الخاصة بـ hash.values_at(obj, ...) يعيد دالة جديدة تحتوي على الخوارزمية القيمة الموجودة تحت المفتاح المحدد. |