الفرق بين المراجعتين ل"Ruby/Hash/transform keys!"

من موسوعة حسوب
< Ruby‏ | Hash
اذهب إلى التنقل اذهب إلى البحث
(إنشاء الصفحة.)
 
(إضافة محتويات الصفحة.)
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Hash]]
 
[[تصنيف: Ruby Hash]]
يعيد التابع <code>transform_keys!‎</code> ت
+
يستدعي التابع <code>transform_keys!‎</code> الكتلة المعطاة مرةً واحدةً لكل مفتاح من مفاتيح الكائن [[Ruby/Hash|<code>Hash</code>]] المعطى، ويستبدل به المفتاح الجديد الذي تعيده الكتلة، ثم يعيد هذا الكائن. لا يُغيّر هذا التابع القيم.
 +
 
 +
إذا لم تُعطَ أية كتلة، فسيُعاد كائن من النوع <code>[[Ruby/Enumerator|enumerator]]</code> بدلًا من ذلك.
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">transform_keys! {|key| block } → hsh
 
<syntaxhighlight lang="ruby">transform_keys! {|key| block } → hsh
 
transform_keys! → an_enumerator</syntaxhighlight>
 
transform_keys! → an_enumerator</syntaxhighlight>
==المعاملات==
 
 
 
==القيمة المعادة==
 
==القيمة المعادة==
تعاد
+
يعاد الكائن [[Ruby/Hash|<code>Hash</code>]] المعطى نفسه بعد تبديل مفاتيحه إلى المفاتيح التي تعيدها الكتلة <code>block</code> عند تمرير المفتاح القديم إليها، أو يعاد كائن من النوع <code>[[Ruby/Enumerator|enumerator]]</code> إن لم تُعطَ أية كتلة.  
  
 +
== أمثلة ==
 +
مثال على استعمال التابع <code>transform_keys!‎</code>:<syntaxhighlight lang="ruby">
 +
h = { a: 1, b: 2, c: 3 }
 +
h.transform_keys! {|k| k.to_s }  #=> { "a" => 1, "b" => 2, "c" => 3 }
 +
h.transform_keys!(&:to_sym)      #=> { a: 1, b: 2, c: 3 }
 +
h.transform_keys!.with_index {|k, i| "#{k}.#{i}" }
 +
                                #=> { "a.0" => 1, "b.1" => 2, "c.2" => 3 }
 +
</syntaxhighlight>
 
==انظر أيضا==
 
==انظر أيضا==
*  
+
* التابع <code>[[Ruby/Hash/transform keys|transform_keys]]</code>: يعيد كائن جديد من النوع <code>[[Ruby/Hash|Hash]]</code> مع ناتج تنفيذ الكتلة المعطاة مرةً واحدةً لكل مفتاح من مفاتيح الكائن <code>[[Ruby/Hash|Hash]]</code> الذي استدعي معه.
 +
* التابع <code>[[Ruby/Hash/transform values|transform_values]]</code>: يعيد كائن جديد من النوع <code>[[Ruby/Hash|Hash]]</code> مع ناتج تنفيذ الكتلة المعطاة مرةً واحدةً لكل قيمة من قيم الكائن <code>[[Ruby/Hash|Hash]]</code> الذي استدعي معه.
 +
* التابع <code>[[Ruby/Hash/transform values!|transform_values!‎]]</code>: يستدعي الكتلة المعطاة مرةً واحدةً لكل قيمة من قيم الكائن [[Ruby/Hash|<code>Hash</code>]] المعطى، ويستبدل به القيمة الجديد التي تعيدها الكتلة، ثم يعيد هذا الكائن. لا يُغيّر هذا التابع المفاتيح.
  
 
==مصادر==
 
==مصادر==
 
*[http://ruby-doc.org/core-2.5.1/Hash.html#method-i-transform_keys-21 قسم التابع transform_keys!‎ في الصنف Hash في توثيق روبي الرسمي.]
 
*[http://ruby-doc.org/core-2.5.1/Hash.html#method-i-transform_keys-21 قسم التابع transform_keys!‎ في الصنف Hash في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 18:31، 26 نوفمبر 2018

يستدعي التابع transform_keys!‎ الكتلة المعطاة مرةً واحدةً لكل مفتاح من مفاتيح الكائن Hash المعطى، ويستبدل به المفتاح الجديد الذي تعيده الكتلة، ثم يعيد هذا الكائن. لا يُغيّر هذا التابع القيم.

إذا لم تُعطَ أية كتلة، فسيُعاد كائن من النوع enumerator بدلًا من ذلك.

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

transform_keys! {|key| block }  hsh
transform_keys!  an_enumerator

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

يعاد الكائن Hash المعطى نفسه بعد تبديل مفاتيحه إلى المفاتيح التي تعيدها الكتلة block عند تمرير المفتاح القديم إليها، أو يعاد كائن من النوع enumerator إن لم تُعطَ أية كتلة.  

أمثلة

مثال على استعمال التابع transform_keys!‎:

h = { a: 1, b: 2, c: 3 }
h.transform_keys! {|k| k.to_s }  #=> { "a" => 1, "b" => 2, "c" => 3 }
h.transform_keys!(&:to_sym)      #=> { a: 1, b: 2, c: 3 }
h.transform_keys!.with_index {|k, i| "#{k}.#{i}" }
                                 #=> { "a.0" => 1, "b.1" => 2, "c.2" => 3 }

انظر أيضا

  • التابع transform_keys: يعيد كائن جديد من النوع Hash مع ناتج تنفيذ الكتلة المعطاة مرةً واحدةً لكل مفتاح من مفاتيح الكائن Hash الذي استدعي معه.
  • التابع transform_values: يعيد كائن جديد من النوع Hash مع ناتج تنفيذ الكتلة المعطاة مرةً واحدةً لكل قيمة من قيم الكائن Hash الذي استدعي معه.
  • التابع transform_values!‎: يستدعي الكتلة المعطاة مرةً واحدةً لكل قيمة من قيم الكائن Hash المعطى، ويستبدل به القيمة الجديد التي تعيدها الكتلة، ثم يعيد هذا الكائن. لا يُغيّر هذا التابع المفاتيح.

مصادر