الفرق بين المراجعتين لصفحة: «Ruby/Object»
جميل-بيلوني (نقاش | مساهمات) ط تعديل رابط |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
{{DISPLAYTITLE:الصنف <code>Object</code> في روبي}} | {{DISPLAYTITLE:الصنف <code>Object</code> في روبي}} | ||
يعدُّ الصنف <code>Object</code> الجذر الافتراضي لكل كائنات روبي. يَرِث الصنف <code>Object</code> من الصنف <code>[[Ruby/BasicObject|BasicObject]]</code> ما يسمح بإنشاء تسلسلات هرمية بديلة للكائن. تُتاح توابع الكائن لكل الأصناف ما لم يتم تجاهلها (overridden) صراحةً. | يعدُّ الصنف <code>Object</code> الجذر الافتراضي لكل كائنات روبي. يَرِث الصنف <code>Object</code> من الصنف <code>[[Ruby/BasicObject|BasicObject]]</code> ما يسمح بإنشاء تسلسلات هرمية بديلة للكائن. تُتاح توابع الكائن لكل الأصناف ما لم يتم تجاهلها (overridden) صراحةً. | ||
تندمج الوحدة <code>Kernel</code> ضمن الصنف <code>Object</code> ما يعطي الوصول العام (global) للدّوال المبنية ضمنيًّا في الوحدة. رغم أنَّ توابع النسخة المنشأة من الصنف <code>Object</code> معرَّفةٌ عن طريق الوحدة <code>Kernel</code>، رأينا أن نوثّقهم هنا لمزيد من الوضوح. | تندمج الوحدة <code>[[Ruby/Kernel|Kernel]]</code> ضمن الصنف <code>Object</code> ما يعطي الوصول العام (global) للدّوال المبنية ضمنيًّا في الوحدة. رغم أنَّ توابع النسخة المنشأة من الصنف <code>Object</code> معرَّفةٌ عن طريق الوحدة [[Ruby/Kernel|<code>Kernel</code>]]، رأينا أن نوثّقهم هنا لمزيد من الوضوح. | ||
عند الإشارة (referencing) إلى الثوابت في الأصناف الوارثة من الصنف | عند الإشارة (referencing) إلى الثوابت في الأصناف الوارثة من الصنف <code>Object</code>، لا تحتاج إلى أن تستخدم كامل مجال الأسماء (namespace). على سبيل المثال، الإشارة بالمرجعية إلى الثابت <code>File</code> ضمن الصنف <code>YourClass</code> سيجد الصنف ذا المستوى الأعلى من <code>File</code>. | ||
في توثيق كل تابع من توابع الصنف <code>Object</code>، يشير المعامل <code>symbol</code> إلى رمزٍ يكون إما سلسلةً نصيةً مقتبسةً (quoted) أو | في توثيق كل تابع من توابع الصنف <code>Object</code>، يشير المعامل <code>symbol</code> إلى رمزٍ يكون إما [[Ruby/String|سلسلةً نصيةً]] مقتبسةً (quoted) أو [[Ruby/Symbol|رمزًا]] (مثل <code>name:</code>). | ||
==الثوابت== | ==الثوابت== | ||
===<code>ARGF</code>=== | ===<code>ARGF</code>=== |
المراجعة الحالية بتاريخ 07:32، 30 مارس 2019
يعدُّ الصنف Object
الجذر الافتراضي لكل كائنات روبي. يَرِث الصنف Object
من الصنف BasicObject
ما يسمح بإنشاء تسلسلات هرمية بديلة للكائن. تُتاح توابع الكائن لكل الأصناف ما لم يتم تجاهلها (overridden) صراحةً.
تندمج الوحدة Kernel
ضمن الصنف Object
ما يعطي الوصول العام (global) للدّوال المبنية ضمنيًّا في الوحدة. رغم أنَّ توابع النسخة المنشأة من الصنف Object
معرَّفةٌ عن طريق الوحدة Kernel
، رأينا أن نوثّقهم هنا لمزيد من الوضوح.
عند الإشارة (referencing) إلى الثوابت في الأصناف الوارثة من الصنف Object
، لا تحتاج إلى أن تستخدم كامل مجال الأسماء (namespace). على سبيل المثال، الإشارة بالمرجعية إلى الثابت File
ضمن الصنف YourClass
سيجد الصنف ذا المستوى الأعلى من File
.
في توثيق كل تابع من توابع الصنف Object
، يشير المعامل symbol
إلى رمزٍ يكون إما سلسلةً نصيةً مقتبسةً (quoted) أو رمزًا (مثل name:
).
الثوابت
ARGF
هو مجرى (stream) صُمِّم ليُستخدَم في الملفات البرمجية (scritps) التي تُعالج الملفات المُمرَّرة إليها على شكل وسائط في سطر الأوامر (command-line arguments)، أو المُمرَّرة عبر مجرى الدخل القياسي (STDIN).
ألقِ نظرة على صفحة الصنف ARGF
لمزيدٍ من المعلومات.
ARGV
يحتوي على وسائط سطر الأوامر المستخدمة في تشغيل روبي. يمكن استخدام مكتبةٍ مثل OptionParser
لمعالجة وسائط سطر الأوامر.
Bignum
DATA
هو ملفٌّ يحوي قسم المعلومات الخاص بالملف المنفَّذ. استخدِم __END__
لإنشاء قسم معلوماتٍ:
$ cat t.rb
puts DATA.gets
__END__
hello world!
$ ruby t.rb
hello world!
ENV
يشبه دوال التجزئة (hash-like accessor) لبيئة المتغيرات.
ألقِ نظرة على صفحة الصنف ENV
لمزيدٍ من المعلومات.
FALSE
هو اسمٌ بديلٌ مهمل (obsolete alias) للقيمة false
.
Fixnum
NIL
هو اسمٌ بديلٌ مهمل للقيمة nil
.
RUBY_COPYRIGHT
يمثّل سلسلةً نصيةً تحتوي حقوق النشر لبرنامج روبي.
RUBY_DESCRIPTION
يمثّل سلسلةً نصيةً تحتوي إصدار روبي الكامل، مثل تلك الناتجة عن تنفيذ الأمر ruby -v
في سطر الأوامر.
RUBY_ENGINE
يمثّل المحرِّك أو المفسِّر الذي تستخدمه روبي.
RUBY_ENGINE_VERSION
يمثّل إصدار المحرِّك أو المفسِّر الذي تستخدمه روبي.
RUBY_PATCHLEVEL
يمثّل مستوى التصحيح (patch level) لهذا الإصدار من روبي. إذا كان الإصدار نسخةً تطويريةً من روبي، فإنَّ مستوى الرقعة سيكون مساويًا 1-.
RUBY_PLATFORM
يمثّل منصة هذا الإصدار من روبي.
RUBY_RELEASE_DATE
يمثّل تاريخ إطلاق هذا الإصدار من روبي.
RUBY_REVISION
يمثّل رقم التنقيح في SVN
لهذا الإصدار من روبي.
RUBY_VERSION
يمثّل الإصدار المُشغَّل حاليًا من روبي.
STDERR
يحتفظ بمجرى الخطأ القياسي (stderr) الأصلي.
STDIN
يحتفظ بمجرى الدخل القياسي (stdin) الأصلي.
STDOUT
يحتفظ بمجرى الخرج القياسي (stdout) الأصلي.
TOPLEVEL_BINDING
يمثل نطاق المستوى الأعلى للصنف BINDING.
TRUE
هو اسمٌ بديلٌ مهمل للقيمة true
.
توابع النسخة الخاصة (Public Instance Methods)
~!
يتحقق من عدم تساوي كائنين (باستخدام التابع =~
).
<=>
يتحقق من تساوي كائنين بين بعضهما بعضًا (يشبه المعامل ==
).
===
يتحقق من تساوي كائنين بشكل صارم.
~=
يتحقّق من تطابق نمطي كائنين (Pattern Match).
class
يعيد صنف الكائن المعطى.
clone
يُنتج نسخةً سطحيةً (shallow copy) من الكائن المعطى.
define_singleton_method
يُعرِّف تابعًا منفردًا (singleton method) في المستقبل (receiver).
display
يَطبع الكائن الذي استدعي معه على المنفذ (port) المعطى (يساوي افتراضيًا <$
).
dup
ينتج نسخةً سطحية (shallow copy) من الكائن.
enum_for
يُنشئ نسخةً من الصنف Enumerator الذي يجري عملية عدٍّ (enumerate) وتكرار عبر استدعاء التابع المُمرَّر إليها مع كائنٍ محدَّد، وتمرير وسائط إن أعطيت.
==
يتحقَّق من تساوي كائنين مع بعضهما بعضًا.
?equal
يُستخدم في تحديد هويّة الكائن.
?eql
يتحقَّق من استخدام كلا الكائنين نفس مفتاح التجزئة (hash key).
extend
يُضيف توابع النسخة (instance) من كُلِّ وحدةٍ مُرِّرت إليه إلى الكائن الذي استدعي معه.
freeze
يمنع إجراء تعديلاتٍ إضافيةٍ على الكائن الذي استدعي معه.
?frozen
يتحقَّق إن كان الكائن في حالة تجميد أم لا.
inspect
يُعيد سلسلةً نصيةً تحتوي تمثيلًا يفهمه البشر للكائن الذي استدعي معه.
?instance_of
يتحقَّق إذا كان الكائن الذي استدعي معه نسخةً من الصِّنف المُمرَّر إليه.
?instance_variable_defined
يتحقَّق إذا كان متغيِّر النسخة (instance variable) المُمرَّر إليه مُعرَّفًا في الكائن المعطى.
instance_variable_get
يجلب قيمة مُتغيِّر النسخة (instance variable) المُمرَّر إليه من الكائن المعطى.
instance_variable_set
يُعيِّن قيمة متغيِّر نسخةٍ (instance variable) محدِّدٍ إلى قيمة معيَّنة في الكائن المُعطى.
instance_variables
يجلب جميع أسماء متغيرات النسخة (instance variable) للمستقبل (receiver) المعطى.
?is_a
يتحقَّق إن كان الصنف المُمرَّر إليه هو نفسه صنف الكائن الذي استدعي معه، أو إن كان هذا الصنف أحد الأصناف العليا (superclasses) للكائن المعطى أو الوحدات المُضمَّنة في هذا الكائن.
itself
يُعيد الكائن المستقبل (receiver).
?kind_of
يتحقَّق إن كان الصنف المُمرَّر إليه هو نفسه صنف الكائن المعطى، أو أنه واحدٌ من الأصناف العليا (superclasses) لذلك الكائن أو الوحدات المُضمَّنة فيه.
method
يبحث عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا (receiver).
methods
يُعيد قائمةً بالتوابع العامَّة والمحميَّة للكائن المعطى.
?nil
يتحقَّق فيما إذا كان الكائن المعطى هو nil أم لا.
object_id
يعيد مُعرِّفا عدديًا للكائن الذي استُدعي معه.
private_methods
يُعيد التابع قائمةً بالتوابع الخاصة (private methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها.
protected_methods
يُعيد قائمةً بالتوابع المحميَّة (protected methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها.
public_method
يبحث عن التوابع العامة فقط بشكل مشابه لعمل التابع method
.
public_methods
يُعيد قائمةً بالتوابع العامَّة (public methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها.
public_send
يَستدعي التابع المعرَّف برمزٍ (symbol) محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة.
remove_instance_variable
يَحذِف متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر.
?respond_to
يتحقَّق من استجابة الكائن الذي استدعي معه للتابع المُمرَّر إليه.
?respond_to_missing
يُصنَّف من التوابع الخطَّافة (Hook method)، إذ يتحقَّق فيما إذا كان الكائن المعطى يستجيب إلى تابعٍ محدِّدٍ أم لا.
send
يَستدعي التابع المعرَّف برمزٍ (symbol) ويُنفَّذه تلقائيًا ويمرِّر إليه أي معاملاتٍ معطاة.
singleton_class
يُعيد صنف الكائن المُنفرد (singleton class) للكائن الذي استدعي معه.
singleton_method
يبحث في التوابع المنفردة فقط بطريقة مشابهة للتابع method
.
singleton_methods
يُعيد مصفوفةً تحوي أسماء توابع الكائن المنفردة (singleton methods).
taint
يصم الكائن الذي استدعي معه بأنه كائنٌ فاسد (tainted).
?tainted
يتحقَّق إذا كان التابع فاسدًا (tainted).
tap
يُدخل الكائن المعطى إلى الكتلة (block)، ثم يعيده.
to_enum
يُنشئ نسخةً من الصنف Enumerator
التي ستُجري عملية عدٍّ (enumerate) عبر استدعاء تابعٍ محدَّدٍ مع الكائن المعطى، وتمرير وسائط إن أعطيت.
to_s
يُعيد سلسلةً نصيةً تُمثِّل الكائن الذي استدعي معه.
trust
يعدُّ تابعًا مهملًا (Deprecated method) وهو مكافئٌ تمامًا للتابع untaint
.
untaint
يُلغي علامة الحالة الفاسدة (tainted) من الكائن الذي استدعي معه.
untrust
يعدُّ تابعًا مهملًا (Deprecated method) وهو مكافئٌ تمامًا للتابع taint
.
?untrusted
يعتبر تابعًا غير منصوحٍ به (Deprecated method) وهو مكافئٌ للتابع ?tainted
.
yield_self
يُدخل الكائن المعطى إلى الكتلة (block) ويُعيد ناتج تنفيذ هذه الكتلة.