الفرق بين المراجعتين ل"Ruby/Object/freeze"

من موسوعة حسوب
< Ruby‏ | Object
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'{{DISPLAYTITLE:التابع <code>Object.freeze</code> في روبي}} يمنع التابع <code>freeze</code> إجراء تعديلاتٍ إضافيةٍ على الك...')
 
ط
 
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين)
سطر 13: سطر 13:
  
 
== أمثلة ==
 
== أمثلة ==
مثالٌ عن استخدام التابع freeze:<syntaxhighlight lang="ruby">
+
مثالٌ عن استخدام التابع <code>freeze</code>:<syntaxhighlight lang="ruby">
 
a = [ "a", "b", "c" ]
 
a = [ "a", "b", "c" ]
 
a.freeze
 
a.freeze
 
a << "z"
 
a << "z"
  
</syntaxhighlight>يعطيهذا المثال عند تطبيقه الناتج التالي:<syntaxhighlight lang="ruby">
+
</syntaxhighlight>يعطي هذا المثال عند تطبيقه الناتج التالي:<syntaxhighlight lang="text">
 
prog.rb:3:in `<<': can't modify frozen Array (FrozenError)
 
prog.rb:3:in `<<': can't modify frozen Array (FrozenError)
 
  from prog.rb:3
 
  from prog.rb:3
سطر 25: سطر 25:
  
 
== انظر أيضًا ==
 
== انظر أيضًا ==
* التابع ?frozen: يتحقَّق إن كان الكائن في  حالة تجميد أم لا.
+
* التابع <code>[[Ruby/Object/frozen-3F|?frozen]]</code>: يتحقَّق إن كان الكائن في  حالة تجميد أم لا.
* التابع taint: يصم الكائن الذي استدعي معه بأنه كائنٌ فاسد.
+
 
* التابع ?tainted: يتحقَّق إذا كان التابع فاسدًا.
+
* التابع <code>[[Ruby/Object/taint|taint]]</code>: يصم الكائن الذي استدعي معه بأنه كائنٌ فاسد.
 +
* التابع <code>[[Ruby/Object/tainted-3F|?tainted]]</code>: يتحقَّق إذا كان التابع فاسدًا.
  
 
== مصادر ==
 
== مصادر ==

المراجعة الحالية بتاريخ 07:17، 30 مارس 2019

يمنع التابع freeze إجراء تعديلاتٍ إضافيةٍ على الكائن الذي استدعي معه. سيُرمَى الخطأ RuntimeError عند محاولة إجراء أي تعديلٍ مع هذا الكائن بعد استدعاء التابع freeze معه. ليس هناك أيُّ طريقةٍ لتحرير الكائن من حالة التجميد (frozen) بعد تطبيقها.

انتبه إلى أن الأصناف التالية تكون في حالة تجميد دائمة وهي: Integer، و Float، و Symbol.

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

freeze  obj

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

يُعاد الكائن المعطى نفسه بعد تجميده.

أمثلة

مثالٌ عن استخدام التابع freeze:

a = [ "a", "b", "c" ]
a.freeze
a << "z"

يعطي هذا المثال عند تطبيقه الناتج التالي:

prog.rb:3:in `<<': can't modify frozen Array (FrozenError)
 from prog.rb:3

انظر أيضًا

  • التابع ?frozen: يتحقَّق إن كان الكائن في  حالة تجميد أم لا.
  • التابع taint: يصم الكائن الذي استدعي معه بأنه كائنٌ فاسد.
  • التابع ?tainted: يتحقَّق إذا كان التابع فاسدًا.

مصادر