نتائج البحث
اذهب إلى التنقل
اذهب إلى البحث
الصنف Method في روبي
يتم إنشاء كائنات الصنف Method بواسطة التابع Object.method، وترتبط بكائن معين (وليس بالصنف وحسب). ويمكن استخدامها لاستدعاء التابع داخل الكائن، أو ككتلة (block) مرتبطة بمكرر (iterator). كما يمكن فك ارتباطها (unbound) من كائن محدد (سيؤدي ذلك إلى إنشاء الكائن UnboundMethod) ثم ربطها بآخر. class Thing
def square(n)
n*n
end
end
thing = Thing.new
meth = thing.method(:square)
meth.call(9) #=> 81
[ 1, 2, 3 ...
المعامل === الخاص بالصنف Method في روبي
يستدعي المعامل === كتلة التابع مع تمرير الكائن الواقع على يمينه كوسيط إلى المعامل الواقع على يساره كما هو الحال في Proc.call. هذا يَسمح لكائنٍ من النوع proc أن يكون هدفًا للكتلة when في التعليمة case. البنية العامة proc === obj→ result_of_proc
القيمة المعادة تعاد نتيجة الوسيط proc. انظر أيضا التابع ==: يتحقق من تساوي كائنين من النوع Method. مصادر قسم التابع === في الصنف Method في توثيق روبي الرسمي.
المعامل [] الخاص بالصنف Method في روبي
يستدعي معامل الفهرسة [] الكتلة البرمجية للتابع، ويضبط قيم معاملات الكتلة عند القيم المعطاة ضمنه باستخدام صياغة مشابهة لاستدعاء التوابع ثم يعيد قيمة آخر تعبير تم تقييمه في الكتلة. لاحظ أنَّ prc.() يستدعي prc.call() مع تمرير الوسائط المعطاة. وهي صياغة مختصرة لإخفاء التابع "call". بالنسبة للكائنات procs التي تم إنشاؤها باستخدام lambda أو ->()، سيُطلق خطأ إذا كان عدد المعاملات الممررة إلى proc غير صحيح. بالنسبة للكائنات proc التي تم إنشاؤها باستخدام Proc.new أو Kernel.proc، سيتم تجاهل المعاملات الإضافية بصمت، ...
المعامل == الخاص بالصنف Method في روبي
يتحقق المعامل == من تساوي كائنين من النوع Method. يكون كائنان من النوع Method متساويين إن كانا مرتبطين بنفس الكائن، وكانا لهما نفس التعريف، وكان لهما نفس الصنف أو الوحدة (module) المالكة. البنية العامة meth == other_meth → true or false
القيمة المعادة تُعاد القيمة true إن كان الكائنان متساويين، وإلا فستُعاد القيمة false. انظر أيضا التابع ===: يستدعي كتلة التابع مع تمرير الكائن الواقع على يمينه كوسيط إلى المعامل الواقع على يساره كما هو الحال في Proc.call. مصادر قسم ...
تبديل التابع إلى كائن التابع (Replace Method with Method Object)
المشكلة وجود تابعٍ طويلٍ بالكثير من المتغيِّرات المحليّة (local variables) المتداخلة والتي تحول دون تطبيق تقنية الحل باستخراج التابع (extract method). الحل نقل التابع إلى صنفٍ (class) مستقلٍ بحيث تصبح متغيِّراته المحليّة حقولًا (fields) لهذا الصنف، وتقسيم التابع بعد ذلك إلى عدّة توابع أصغر في الصنف ذاته. مثال قبل إعادة التصميم نلاحظ وجود العديد من المتغيِّرات المحليّة في التابع price() بالإضافة إلى عملياتٍ أخرى قد تكون طويلةً ومعقَّدة: في لغة Java: class Order {
//...
public double price() ...
إنشاء التوابع (Composing Methods)
تستهدف إعادة التصميم بشكل رئيسيٍّ إنشاء التوابع الصحيحة المناسبة، إذ تكون التوابع الطويلة سببًا للمشاكل في كثيرٍ من الحالات، وتجعل شيفرات بعض التوابع منطق التنفيذ (execution logic) غامضًا ويصبح التابع بهذا عصيَّ الفهم من جهةٍ وصعب التغييرٍ من جهة ثانية. يشمل هذا القسم من الحلول كلَّ ما يتعلق بالتوابع وإزالة التكرار (duplicates) في الشيفرة ليسمح بإجراء التطويرات المستقبليّة، وهذه التقنيات هي: استخراج التوابع (Extract Methods) المشكلة: وجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. الحل: نقل الشيفرة إلى تابعٍ (method) ...
نقل التابع (Move Method)
المشكلة استخدام التابع (method) في صنفٍ (class) ما أكثر من استخدامه في صنفه الأساسيّ. الحل إنشاء تابعٍ جديدٍ في الصنف الأكثر استخدامًا لذلك التابع ونقل شيفرته إلى التابع الجديد، ثم تحويل الشيفرة في التابع الأصليّ إلى مرجعيّةٍ للتابع الجديد في الصنف الآخر أو حذفه كليَّا. مثال قبل إعادة التصميم يستخدِم الصنفُ Class2 التابعَ aMethod() أكثر مما يستخدمه صنفه الأساسيّ Class1: يستخدِم الصنفُ Class2 التابعَ aMethod() أكثر مما يستخدمه صنفه الأساسيّ Class1. بعد إعادة التصميم نُقِل التابع aMethod() إلى الصنف ذي ...
إخفاء التابع (Hide Method)
المشكلة لا يُستخدم التابع من قِبل الأصناف الأخرى أو يستخدم فقط داخل التسلسل الهرمي للصنف الخاص به. الحل جعل التابع خاصًا أو محميًا. مثال قبل إعادة التصميم لا يستخدم التابع ()aMethod من قبل أصناف أخرى غير الصنف Employee المعرف فيه: لا يُستخدم التابع من قِبل الأصناف الأخرى أو يستخدم فقط داخل التسلسل الهرمي للصنف الخاص به. بعد إعادة التصميم جعل التابع ()aMethod خاصًّا ومحميًّا بإخفائه عن الأصناف الأخرى: جعل التابع خاصًا أو محميًا. لم إعادة التصميم؟ في كثير من الأحيان، ...
إنشاء التوابع (Composing Methods)
تستهدف إعادة التصميم بشكل رئيسيٍّ إنشاء التوابع الصحيحة المناسبة، إذ تكون التوابع الطويلة سببًا للمشاكل في كثيرٍ من الحالات، وتجعل شيفرات بعض التوابع منطق التنفيذ (execution logic) غامضًا ويصبح التابع بهذا عصيَّ الفهم من جهةٍ وصعب التغييرٍ من جهة ثانية. يشمل هذا القسم من الحلول كلَّ ما يتعلق بالتوابع وإزالة التكرار (duplicates) في الشيفرة ليسمح بإجراء التطويرات المستقبليّة، وهذه التقنيات هي: استخراج التوابع (Extract Methods) المشكلة: وجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. الحل: نقل الشيفرة إلى تابعٍ (method) ...
استخراج التوابع (Extract Methods)
المشكلة وجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. الحل نقل الشيفرة إلى تابعٍ (method) أو دالةٍ (function) جديدة والاستعاضة عن الجزء (بمكانه السابق) باستدعاءٍ لهذا التابع الجديد. مثال قبل إعادة التصميم نلاحظ وجود جزء من الشيفرة لطباعة بعض البيانات (التفاصيل)، والتي يمكن عزلها بتابعٍ جديد، الشيفرة قبل إعادة التصميم بالشكل: في لغة Java: void printOwing() {
printBanner();
// طباعة التفاصيل
System.out.println("name: " + name);
System.out.println("amount: " + getOutstanding());
}
في لغة #C: void PrintOwing()
{
PrintBanner();
...
دمج التوابع (Inline Methods)
المشكلة أن يكون محتوى التابع (method body) بسيطًا وواضحًا أكثر من التابع بحدِّ ذاته، ويمكن عندئذٍ الاستغناء عنه. الحل نقل الشيفرة الموجودة في التابع (محتوى التابع) إلى مواقع استدعائه، وحذف التابع برمته إذ لا داعي له. مثال قبل إعادة التصميم نلاحظ أن محتوى التابع moreThanFiveLateDeliveries() واضحٌ وبسيطٌ لدرجةٍ تجعل الاستغناء عنه ممكنًا: في لغة Java: class PizzaDelivery {
//...
int getRating() {
return moreThanFiveLateDeliveries() ? 2 : 1;
}
boolean moreThanFiveLateDeliveries() {
...
التوابع الطويلة (Long Methods)
توصيف المشكلة تنتُج هذه المشكلة عن احتواء شيفرة التابع على الكثير من الأسطر؛ فهو أمرٌ يدعو للتساؤل حقًا إن كان التابع بأكثر من 10 أسطر! لِمَ؟ أسبابها إنَّ ما يحدث دائمًا أنْ يُضاف للتابع لا أن يُحذَف منه! وذلك لسهولة كتابة الإضافات للشيفرة مقارنةً مع قراءتها، ولن تظهر هذه المشكلة واضحةً إلا بعد تفاقمها ووصولها لحدِ لا يُحتمَل، وكذلك يجد المبرمج أنَّ كتابة تابعٍ جديدٍ أكثرُ مشقّةً من الإضافة لتابعٍ موجودٍ مسبقًا، إذ يفكر: "هما سطران وحسب، ولا داعي لتخصيص ...
التابع call الخاص بالصنف Method في روبي
يستدعي call كتلة التابع الذي استٌدعي معه، ويضبط وسائط الكتلة عند القيم المُمرَّرة إليه باستخدام صياغة مشابهة لصياغة استدعاء التوابع ثم يعيد قيمة آخر تعبير تم تقييمه في الكتلة. لاحظ أن prc.() يستدعي prc.call() مع تمرير المعاملات المعطاة. وهي صياغة مختصرة لإخفاء التابع "call". بالنسبة للكائنات procs التي تم إنشاؤها باستخدام lambda أو ->()، سيُطلق خطأ إذا كان عدد المعاملات الممررة إلى proc غير صحيح. بالنسبة للكائنات proc التي تم إنشاؤها باستخدام Proc.new أو Kernel.proc ، سيتم تجاهل المعاملات الإضافية ...
تحويل التوابع إلى معاملات (Parameterize Method)
المشكلة تؤدي توابع متعددة أعمالًا مماثلة تختلف فقط من حيث قيمها الداخلية أو أرقامها أو عملياتها. الحل تجميع هذه التوابع باستخدام معامل يُمرر القيمة الخاصة الضرورية. مثال قبل إعادة التصميم يؤدي التابعان ()fivePercentRaise و ()tenPercentRaise الغرض ذاته باختلاف النسبة المئوية المراد زيادتها للموظف Employee: يؤدي التابعان أعمالًا مماثلة تختلف فقط من حيث قيمها الداخلية أو أرقامها أو عملياتها. بعد إعادة التصميم تجميع التابعان السابقان في تابع واحد يدعى ()raise مع تمرير النسبة المئوية المتغيرة إليه: يجمع التابعين باستخدام معامل يُمرر ...
إعادة تسمية التوابع (Rename Method)
المشكلة لا يعبِّر اسم التابع عن ما يقوم به. الحل إعادة تسمية التابع. مثال قبل إعادة التصميم لا يفسر اسم التابع ()getsnm في الصنف Customer ما يقوم به. لا يفسر اسم التابع ما يقوم به. بعد إعادة التصميم إعادة تسمية التابع ()getsnm إلى ()getSecondName الذي يصف ما يقوم به. يفسر اسم التابع ما يقوم به. لم إعادة التصميم؟ ربما كانت تسمية تابعٍ ما سيئة من البداية - على سبيل المثال، أنشأ شخصٌ ما التابع في عجلة ولم يهتم كفاية بتسميته ...
طريقة الاستعمال وتشغيل الأمثلة في Node.js
البنية العامة node [options] [V8 options] [script.js | -e "script" | - ] [arguments]
راجع رجاءً توثيق خيارات سطر الأوامر للمزيد من المعلومات عن الخيارات والطرائق التي يمكن استعمالها لتشغيل السكربتات وتنفيذها مع Node.js. تشغيل الأمثلة سنشرح مثالًا عن إنشاء خادم ويب باستعمال Node.js يُظهِر العبارة 'مرحبًا بالعالم!' في المتصفح. تبدأ الأوامر المستعملة في هذا المثال بالمحرف $ أو < وذلك لمحاكاة كيفيَّة ظهورها في طرفيَّة المستخدم، لذا لا تضف هذين المحرفين إلى الأوامر عند نسخها واستعمالها. توجد الكثير من الدروس ...
ازالة توابع الإعدادات (Remove Setting Method)
المشكلة يكون تعيين قيمة الحقل فقط عند إنشائه، ولا تتغير في أي وقت لاحق. الحل إزالة التوابع التي تضبط قيمة الحقل. مثال قبل إعادة التصميم يضبط التابع ()setImmutableValue قيمةً غير قابلة للتغيير أو التعديل في المستقبل: يغيّر التابع من قيمة الحقل. بعد إعادة التصميم حذف التابع ()setImmutableValue من الصنف Customer: إزالة التابع الذي يضبط قيمة الحقل. لم إعادة التصميم؟ إذا كنت تريد منع أي تغييرات في قيمة الحقل. آلية الحل يجب أن تكون قيمة الحقل قابلة للتغيير فقط في الباني. ...
تبسيط استدعاءات التوابع (Simplifying Method Calls)
تجعل التقنيات التي سيشار إليها في هذا القسم استدعاءات التوابع أبسط وأسهل للفهم والاستيعاب. سيؤدي ذلك بدوره إلى تبسيط الواجهات للتفاعل بين الأصناف. هذه التقنيات هي: إعادة تسمية التوابع (Rename Method) المشكلة: لا يعبِّر اسم التابع عن ما يقوم به. الحل: إعادة تسمية التابع. إضافة المعاملات (Add Parameter) المشكلة: لا يملك التابع بيانات كافية لتنفيذ بعض الإجراءات. الحل: إنشاء معامل جديد لتمرير البيانات الضرورية. حذف المعاملات (Remove Parameter) المشكلة: لا يُستخدم معاملٌ ما في متن التابع. الحل: إزالة المعامل غير ...
تعريف التوابع الدخيلة (Introduce Foreign Methods)
المشكلة الحاجة إلى تابعٍ غير موجودٍ في الصنف المساعد (utility class) ومن غير الممكن إضافته إلى ذلك الصنف. الحل إضافة التابع المطلوب إلى صنف العميل (client class) وتمرير كائنٍ (object) من الصنف المساعد إليه كوسيط (argument). مثال قبل إعادة التصميم يحتوي الصنف Report تابعًا باسم sendReport والذي يستخدم الصنف المساعد Date لإنشاء تاريخ اليوم التالي عبر إضافة القيمة 1 إلى اليوم الحالي، كما يلي: في لغة Java: class Report {
//...
void sendReport() {
Date ...
دفع التابع لأسفل (Push Down Method)
المشكلة هل السلوك المُنفَّذ في الصنف الأب مُستخدمٌ في صنف فرعي واحد فقط (أو أكثر)؟ الحل نقل هذا السلوك إلى الأصناف الفرعية. مثال قبل إعادة التصميم التابع ()getFuel الموجود في الصنف Unit الأب مُستخدم في صنف فرعي واحد فقط الذي هو Tank: التابع الموجود في الصنف الأب مُستخدم في صنف فرعي واحد فقط. بعد إعادة التصميم نقل التابع ()getFuel من الصنف الأب إلى الصنف الفرعي المستخدم فيه: نقل هذا التابع إلى الصنف الفرعي الذي يُستخدم فيه. لم إعادة التصميم؟ في ...
سحب التابع لأعلى (Pull Up Method)
المشكلة تحتوي الأصناف الفرعية على توابع تؤدي نفس العمل. الحل جعل التوابع متطابقة ثم نقلها إلى الصنف الأعلى ذي الصلة. مثال قبل إعادة التصميم يحتوي الصنفان الفرعيان Soldier و Tank على التابع ()getHealth الذي يؤدي نفس العمل: تحتوي الأصناف الفرعية على التابع ()getHealth تؤدي نفس العمل. بعد إعادة التصميم نقل التابع ()getHealth إلى الصنف Unit الأب وإزالته من الأصناف الفرعية: نقل التابع ()getHealth إلى الصنف الأعلى. لم إعادة التصميم؟ تنمو الأصناف الفرعية وتتطور بشكل مستقل عن بعضها البعض، مما يتسبب ...
تبديل المعاملات باستدعاءات التوابع (Replace Parameter with Method Call)
المشكلة استدعاء تابع استعلام (query method) وتمرير نتائجه كمعاملات لتابع آخر، في حين أنه يمكن لهذا التابع استدعاء الاستعلام مباشرة. الحل بدلًا من تمرير القيمة من خلال المعامل، حاول وضع استدعاء الاستعلام داخل متن التابع. مثال قبل إعادة التصميم تخزين القيمة التي يعيدها كلٌّ من التابعين ()getSeasonalDiscount و ()getFees في متغير ثم تمريرها إلى التابع ()discountedPrice: في لغة Java: int basePrice = quantity * itemPrice;
double seasonDiscount = this.getSeasonalDiscount();
double fees = this.getFees();
double finalPrice = discountedPrice(basePrice, seasonDiscount, fees);
في لغة C#: int basePrice ...
استبدال المعامل بتوابع صريحة (Replace Parameter with Explicit Methods)
المشكلة ينقسم التابع إلى أجزاء، كل منها يتم تشغيله اعتمادًا على قيمة المعامل. الحل استخراج الأجزاء الفردية من التابع إلى توابعها الخاصة واستدعائها بدلًا من استدعاء التابع الأصلي. مثال قبل إعادة التصميم وجود تابع يدعى ()setValue يضبط قيمة الارتفاع والعرض بناءً على تمرير سلسلة نصية صريحة بذلك: في لغة Java: void setValue(String name, int value) {
if (name.equals("height")) {
height = value;
return;
}
if (name.equals("width")) {
width ...
استبدال المُنشئ بتابع التصميم (Replace Constructor with Factory Method)
المشكلة لديك مُنشئ (constructor) معقد يقوم بما هو أكثر من مجرد وضع قيم المعامل في حقول الكائن. الحل إنشاء تابع تصميم واستخدامه لاستبدال استدعاءات المُنشئ. مثال قبل إعادة التصميم وجود منشئ معقد للصنف Employee: في لغة Java: class Employee {
Employee(int type) {
this.type = type;
}
//...
}
في لغة C#: public class Employee
{
public Employee(int type)
{
this.type = type;
}
//...
}
في لغة PHP: class ...
التابع Method.parameters في روبي
يعيد التابع parameters معلومات عن معاملات الكائن Method الذي استُدعي معه. البنية العامة parameters → array
القيمة المعادة تعاد مصفوفة تحوي معلومات عن وسائط الكائن Method المعطى. أمثلة مثال على استخدام التابع parameters: def foo(bar); end
method(:foo).parameters #=> [[:req, :bar]]
def foo(bar, baz, bat, &blk); end
method(:foo).parameters #=> [[:req, :bar], [:req, :baz], [:req, :bat], [:block, :blk]]
def foo(bar, *args); end
method(:foo).parameters #=> [[:req, :bar], [:rest, :args]]
def foo(bar, baz, *args, &blk); end
method(:foo).parameters #=> [[:req, :bar], [:req, :baz], [:rest, :args], [:block, :blk]]
انظر أيضا التابع owner: يعيد الصنف ...
التابع Object.method في روبي
يبحث التابع method عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا (receiver)، ثمَّ يعيد كائنًا من النوع Method لذلك التابع (أو يرمي الاستثناء NameError). يتصرَّف الكائن Method كتعبيرٍ مغلق (closure) في نسخ الكائن الخاصة بالكائن الذي يبحث فيه؛ لذلك، تبقى متغيِّرات النسخة (instance variables) وقيمة self متاحةً. البنية العامة method(sym) → method
المعاملات sym رمزٌ يشير إلى اسم التابع المراد البحث عنه. القيم المعادة يُعاد كائنًا من النوع Method يمثِّل التابع الموافق للاسم sym الموجود في الكائن المعطى، أو ...
التابع Method.to_proc في روبي
يعيد التابع to_proc الكائن Proc المقابل للكائن Method الذي استُدعي معه. البنية العامة to_proc → proc
القيمة المعادة يعاد كائنٌ من النوع Proc الذي يقابل الكائن Method المعطى. انظر أيضا التابع super_method: يعيد كائنًا من النوع Method للصنف الأب (superclass) للكائن Method الذي استدعي معه. التابع to_s: يعيد اسم التابع الأصلي (underlying method). مصادر قسم التابع to_proc في الصنف Method في توثيق روبي الرسمي.
التابع Method.super_method في روبي
يعيد التابع super_method كائنًا من النوع Method للصنف الأب (superclass) للكائن Method الذي استدعي معه لاستدعائه عند استخدام super، أو يعيد nil إن لم يكن هناك تابع في الصنف الأب. البنية العامة super_method → method
القيمة المعادة يعاد كائن من النوع Method للصنف الأب للكائن Method المعطى، أو تعاد القيمة nil إن لم يكن هناك تابع في الصنف الأب. انظر أيضا التابع source_location: يعيد اسم الملف المصدر لروبي ورقم السطر الذي يحتوي هذا التابع، التابع to_proc: يعيد كائنًا من النوع Proc المقابل ...
التابع Object.define_singleton_method في روبي
يُعرِّف التابع define_singleton_method تابعًا منفردًا (singleton method) في المستقبل (receiver). البنية العامة define_singleton_method(symbol, method) → symbol
define_singleton_method(symbol) { block } → symbol
المعاملات symbol الرمز المُمرَّر إلى التابع والذي سيُعرِّف التابع المنفرد. method التابع المُمرَّر كمعامل. يمكن أن يكون هذا التابع كائنًا من النوع proc، أو Method، أو UnboundMethod. block وسيط اختياري يمثِّل الكتلة المُمرَّرة إلى التابع. إذا أعطي، فستُنفَّذ الكتلة المعطاة كما لو أنَّها من جسم التابع method. القيم المعادة يُعاد تابعٌ منفردٌ يمكن استدعائه في المستقبل. أمثلة مثالٌ عن ...
التابع InstructionSequence.of في روبي
يُعيد التابع of سلسلة التعليمات التي تحوي الكائن Proc أو Method المعطى. البنية العامة of(p1)
أمثلة مثال على استعمال التابع of باستخدام irb: # a proc
> p = proc { num = 1 + 2 }
> RubyVM::InstructionSequence.of(p)
> #=> <RubyVM::InstructionSequence:block in irb_binding@(irb)>
# for a method
> def foo(bar); puts bar; end
> RubyVM::InstructionSequence.of(method(:foo))
> #=> <RubyVM::InstructionSequence:foo@(irb)>
أو باستخدام compile_file: # /tmp/iseq_of.rb
def hello
puts "hello, world"
end
$a_global_proc = proc { str = 'a' + 'b' }
# in irb
> require '/tmp/iseq_of.rb'
# first the method hello
> RubyVM::InstructionSequence.of(method(:hello))
> #=> ...
الصنف UnboundMethod في روبي
تدعم روبي شكلين من التوابع الكائنية (objectified methods). يستخدم الصنف Method لتمثيل التوابع المرتبطة بكائن معين، ويمكن إنشاء كائنات التوابع من هذا النوع عبر التابع Object.method. تدعم روبي أيضًا التوابع الحرة (unbound methods)؛ وهي كائنات توابع غير مرتبطة بكائن معين. يمكن إنشاؤها إما عن طريق استدعاء Module.instance_method، أو عن طريق استدعاء unbind على تابع مرتبط (bound method object). نتيجة كليهما ستكون تابعًا حرًا (كائن من النوع UnboundMethod). لا يمكن استدعاء التوابع الحرة إلا بعد ربطها بكائن ما. ويجب أن يعيد ...
التابع Method.to_s في روبي
يعيد التابع to_s اسم التابع الأصلي (underlying method). البنية العامة to_s→ string
القيمة المعادة تعاد سلسلة نصية تمثِّل اسم التابع الأصلي. أمثلة مثال على استخدام التابع to_s: "cat".method(:count).inspect #=> "#<Method: String#count>"
انظر أيضا التابع to_proc: يعيد الكائنً Proc المقابل للكائن Method الذي استدعي معه. التابع unbind: يفك ارتباط الكائن Method من مُستقبِله (receiver) الحالي. مصادر قسم التابع to_s في الصنف Method في توثيق روبي الرسمي.
التابع Method.receiver في روبي
يعيد التابع receiver المستقبل المتلقي (bound receiver) للكائن Method الذي استُدعي معه. البنية العامة receiver → object
القيمة المعادة يعاد المستقبل المتلقي (bound receiver) للكائن Method المعطى. انظر أيضا التابع parameters: يعيد معلومات عن معاملات الكائن Method الذي استُدعي معه. التابع source_location: يعيد اسم الملف المصدر لروبي ورقم السطر الذي يحتوي كائن Method الذي استُدعي معه.. مصادر قسم التابع receiver في الصنف Method في توثيق روبي الرسمي.
التابع UnboundMethod.to_s في روبي
يعيد التابع to_s اسم التابع الأصلي (underlying method) للتابع الحر الذي استدعي معه. البنية العامة to_s→ string
القيمة المعادة يعاد اسم التابع الأصلي (underlying method) للتابع الحر المعطى. أمثلة مثال على استخدام التابع to_s: "cat".method(:count).inspect #=> "#<Method: String#count>"
انظر أيضًا التابع inspect: يعيد اسم التابع الأصلي (underlying method) للتابع الحر الذي استُدعي معه. التابع original_name: يعيد الاسم الأصلي للتابع الحر الذي استُدعي معه. مصادر قسم التابع to_s في الصنف UnboundMethod في توثيق روبي الرسمي.
التابع Method.eql? في روبي
يتحقق التابع ?eql من تساوي كائنين من النوع Method. يكون كائنان من النوع Method متساويتين إذا كانا مرتبطين بنفس الكائن، ولهما نفس التعريف، وكانا مملوكين من قبل نفس الصنف أو الوحدة. البنية العامة eql?(other_meth) → true or false
المعاملات other_meth كائن من النوع Method يراد التحقق من تساويه مع الكائن المعطى. القيمة المعادة تعاد القيمة true إن كان الكائن المعطى مساويًا للكائن other_meth، وإلا فستعاد القيمة false. انظر أيضا التابع ==: يتحقق من تساوي كائنين من النوع Method. مصادر قسم التابع ...
التابع Method.source_location في روبي
يعيد التابع source_location اسم الملف المصدر لروبي ورقم السطر الذي يحتوي للتابع Method الذي استدعي معه، أو يعيد القيمة nil إن لم يُعرّف هذا التابع في روبي (أي أنه أصلي). البنية العامة source_location → [String, Integer]
القيمة المعادة يعاد اسم الملف المصدر لروبي ورقم السطر الذي يحتوي للتابع Method المعطى، أو تعاد القيمة nil إن لم يُعرّف هذا التابع في روبي. انظر أيضا التابع receiver: يعيد المستقبل المتلقي (bound receiver) لكائن Method. التابع super_method: يعيد كائنًا من النوع Method للصنف الأب (superclass)، ...
التابع Method.name في روبي
يعيد name اسم الكائن Method الذي استُدعي معه. البنية العامة name → symbol
القيمة المعادة يعاد رمزٌ يمثِّل اسم الكائن Method الذي استُدعي معه. انظر أيضا التابع inspect: يعيد اسم التابع الأصلي (underlying method). التابع original_name: يعيد الاسم الأصلي للتابع الذي استُدعي معه. مصادر قسم التابع name في الصنف Method في توثيق روبي الرسمي.
التابع Method.hash في روبي
يعيد التابع hash القيمة hash المقابلة للكائن Method الذي استُدعي معه. راجع أيضًا صفحة Object.hash. البنية العامة hash→ integer
القيمة المعادة يعاد عدد صحيح يمثِّل القيمة hash المقابلة للكائن Method المعطى. انظر أيضا التابع inspect: يعيد اسم التابع الأصلي (underlying method). مصادر قسم التابع hash في الصنف Method في توثيق روبي الرسمي.
التابع Enumerator.new في روبي
ينشئ التابع new كائنًا جديدًا من النوع Enumerator يمكن استعماله ككائن قابل للتعداد (Enumerable). البنية العامة new(size = nil) { |yielder| ... }
new(obj, method = :each, *args)
في الشكل الأول للتابع، يُعرَّف التكرار عبر الكتلة المعطاة التي يمكن استخدام الكائن yielder - المعطى كمعامل - فيها لإعادة القيمة الناتجة عبر استدعاء التابع yield (أو اسمه البديل +>>+). في الشكل الثاني - المهمل - للتابع، يتكرر مُعدِّدٌ مُولَّد عبر الكائن obj المعطى باستعمال التابع method المعطى مع تمرير الوسائط args إليه. لا يُشجَّع على ...
التابع Method.inspect في روبي
يعيد inspect اسم التابع الأصلي (underlying method). البنية العامة inspect→ string
القيمة المعادة تعاد سلسلة نصية تمثِّل اسم التابع الأصلي. أمثلة مثال على استخدام التابع inspect: "cat".method(:count).inspect #=> "#<Method: String#count>"
انظر أيضا التابع hash: يعيد القيمة hash المقابلة للكائن Method الذي استُدعي معه. التابع name: يعيد اسم التابع. مصادر قسم التابع inspect في الصنف Method في توثيق روبي الرسمي.
التابع Method.unbind في روبي
يفك التابع unbind ارتباط الكائن Method الذي استُدعي معه من مُستقبِله (receiver) الحالي. يمكن في وقت لاحق ربط الكائن الناتج UnboundMethod مع كائن جديد من نفس الصنف (انظر UnboundMethod). البنية العامة unbind → unbound_method
القيمة المعادة يعاد كائن من النوع UnboundMethod يمثِّل مستقبل الكائن Method المعطى. انظر أيضا التابع to_s: يعيد اسم التابع الأصلي (underlying method). مصادر قسم التابع unbind في الصنف Method في توثيق روبي الرسمي.
التابع UnboundMethod.parameters في روبي
يعيد التابع parameters معلومات عن معاملات التابع الحر الذي استُدعي معه على شكل مصفوفة. البنية العامة parameters → array
القيمة المعادة تعاد مصفوفة تحوي معلومات عن معاملات التابع الحر الذي استُدعي معه على شكل مصفوفة. أمثلة مثال على استخدام التابع parameters: def foo(bar); end
method(:foo).parameters #=> [[:req, :bar]]
def foo(bar, baz, bat, &blk); end
method(:foo).parameters #=> [[:req, :bar], [:req, :baz], [:req, :bat], [:block, :blk]]
def foo(bar, *args); end
method(:foo).parameters #=> [[:req, :bar], [:rest, :args]]
def foo(bar, baz, *args, &blk); end
method(:foo).parameters #=> [[:req, :bar], [:req, :baz], [:rest, ...
الصنف NoMethodError في روبي
يُطلق الاستثناء NoMethodError عند استدعاء تابعٍ مع مستقبِل (receiver) غير مُعرَّف فيه مع فشل الاستجابة للتابع method_missing. "hello".to_ary
سيُطلق الاستثناء NoMethodError عند تنيفذ الشيفرة السابقة بالشكل: NoMethodError: undefined method `to_ary' for "hello":String
توابع الصنف العامة (Public Class Methods) new ينشئ استثناءً من النوع NoMethodError للتابع ذي الاسم المعطى مع الوسائط المُمرَّرة. توابع النسخة العامة (Public Instance Methods) args يعيد الوسائط التي تم تمريرها كمعامل ثالث إلى الباني new. ?private_call مصادر قسم الصنف NoMethodErrorفي توثيق روبي الرسمي.
التابع Method.original_name في روبي
يعيد التابع original_name الاسم الأصلي للكائن Method الذي استُدعي معه. البنية العامة original_name → symbol
القيمة المعادة يعاد رمزٌ يمثِّل الاسم الأصلي للكائن Method المعطى. أمثلة مثال على استخدام التابع original_name: class C
def foo; end
alias bar foo
end
C.instance_method(:bar).original_name # => :foo
انظر أيضا التابع name: يعيد اسم التابع. التابع owner: يعيد الصنف أو الوحدة (module) التي تُعرِّف الكائن Method الذي استُدعي معه. مصادر قسم التابع original_name في الصنف Method في توثيق روبي الرسمي.
التابع UnboundMethod.super_method في روبي
يعيد التابع super_method كائنًا من النوع Method للصنف الأب (superclass)، حتى يمكن استدعاؤه عند استخدام المتغير super، أو يعيد nil إن لم يكن هناك تابع في الصنف الأب. البنية العامة super_method → method
القيمة المعادة يعاد كائنٌ من النوع Method للصنف الأب (superclass)، أو تعاد القيمة nil إن لم يكن هناك تابع في الصنف الأب. انظر أيضًا التابع source_location: يعيد اسم الملف المصدر لروبي ورقم السطر الذي يحتوي هذا التابع. التابع to_s: يعيد الاسم الأصلي التابع الحر (underlying method). مصادر قسم التابع ...
الصنف Object في روبي
يعدُّ الصنف Object الجذر الافتراضي لكل كائنات روبي. يَرِث الصنف Object من الصنف BasicObject ما يسمح بإنشاء تسلسلات هرمية بديلة للكائن. تُتاح توابع الكائن لكل الأصناف ما لم يتم تجاهلها (overridden) صراحةً. تندمج الوحدة Kernel ضمن الصنف Object ما يعطي الوصول العام (global) للدّوال المبنية ضمنيًّا في الوحدة. رغم أنَّ توابع النسخة المنشأة من الصنف Object معرَّفةٌ عن طريق الوحدة Kernel، رأينا أن نوثّقهم هنا لمزيد من الوضوح. عند الإشارة (referencing) إلى الثوابت في الأصناف الوارثة من الصنف Object، لا ...
التابع Module.instance_methods في روبي
يعيد التابع instance_methods مصفوفةً تحتوي على أسماء توابع النسخ (instance methods) العامة والمحمية (protected) في المستقبِل. بالنسبة للوحدات، ستكون التوابع هي العامة والمحمية. أما بالنسبة للأصناف، فستكون تلك التوابع هي توابع النسخ (وليس التوابع المفردة [singleton methods]). إذا كان أعطي المعامل الاختيار وكانت قيمته false، فلن يتم تضمين توابع الأسلاف (ancestors). البنية العامة instance_methods(include_super=true)→ array
المعاملات include_super قيمة منطقية إن أعطيت وكانت false، فلن يتم تضمين توابع الأسلاف (ancestors). القيمة المعادة تعاد مصفوفة تحتوي على أسماء توابع النسخ العامة والمحمية (protected) ...
الصنف Module في روبي
الصنف Module هو مجموعة من التوابع والثوابت. التوابع الموجودة في الوحدات Module قد تكون إما توابع نسخة (instance methods)، أو توابع وحدة (module methods). توابع النسخة تظهر كتوابع في صنفٍ عند تضمين الوحدة، وذلك على خلاف توابع الوحدة. وعلى النقيض، يمكن استدعاء توابع الوحدة دون إنشاء كائن يُغلفها، بينما قد لا يمكن فعل ذلك مع توابع النسخة. انظر صفحة module_function. في الأمثلة الموجودة في صفحات التوابع، يشير المعامل sym إلى رمز، والذي قد يكون إما سلسلة نصية، أو كائنًا من النوع ...
التابع InstructionSequence.disasm في روبي
يأخذ التابع disasm كائنًا يمكن أن يكون من النوع Method أو من النوع Proc ويعيد سلسلة نصية تعليمات قابلة للقراءة لهذا المعامل المعطى. البنية العامة disasm(body) → str
disassemble(body) → str
المعاملات body كائن من النوع Method أو من النوع Proc. القيمة المعادة تعاد سلسلة نصية تحوي المعامل body على هيئة تعليمات قابلة للقراءة. أمثلة مثال على استخدام التابع disasm مع تمرير الكائن Method إليه: # /tmp/method.rb
def hello
puts "hello, world"
end
puts RubyVM::InstructionSequence.disasm(method(:hello))
الناتج سيكون: == disasm: <RubyVM::InstructionSequence:hello@/tmp/method.rb>============
0000 trace ...
التابع InstructionSequence.disassemble في روبي
يأخذ التابع disassemble المعامل body، والذي سيكون إما كائنًا من النوع Method، أو من النوع Proc، ثم يُعيد سلسلة نصية تحوي هذا المعامل على هيئة تعليمات قابلة للقراءة. البنية العامة disasm(body) → str
disassemble(body) → str
المعاملات body كائن من النوع Method أو من النوع Proc. القيمة المعادة تعاد سلسلة نصية تحوي محتوى المعامل body على هيئة تعليمات قابلة للقراءة. أمثلة مثال على استخدام التابع disassemble مع كائن من النوع Method: # /tmp/method.rb
def hello
puts "hello, world"
end
puts RubyVM::InstructionSequence.disasm(method(:hello))
الناتج سيكون: == disasm: ...
الصنف NameError في روبي
يُطلق الاستثناء NameError عندما يكون الاسم المعطى غير صالح أو غير مُعرّف. انظر إلى السطر البرمجي التالي: puts foo
سيُطلق عند تنفيذه الاستثناء التالي: NameError: undefined local variable or method `foo' for main:Object
أسماء الثوابت يجب أن تبدأ بحرف كبير، لذلك فالشيفرة البرمجية التالي: Integer.const_set :answer, 42
ستطلق الاستثناء NameError: NameError: wrong constant name answer
توابع الصنف العامة (Public Class Methods) new ينشئ استثناءً جديدًا من النوع NameError. توابع النسخة العامة (Public Instance Methods) local_variables يعيد قائمة بأسماء المتغيرات المحلية المُعرّفة حيث أُطلٍق ...
التابع Method.arity في روبي
يعيد التابع arity مؤشرًا يمثل لعدد الوسائط المقبولة من قبل التابع (method) الذي استُدعي معه. يعيد عددًا صحيحًا غير سالب للتوابع التي تقبل عددًا محددًا من الوسائط. بالنسبة لتوابع روبي التي تأخذ عددًا متغيرًا من الوسائط، يًعاد العدد -n-1، حيث n هو عدد الوسائط المطلوبة. الوسائط المسماة (Keyword arguments) ستُعد وسيطاً إضافيًا واحدًا، وسيكون ذلك الوسيط إلزاميًّا إن كان أيٌّ من الوسائط المسماة كذلك. بالنسبة للتوابع المكتوبة بلغة C، سيُعاد العدد -1 إن كانت تلك التوابع تأخذ عددًا متغيرًا من الوسائط. ...
التابع Object.public_method في روبي
يبحث التابع public_method عن التوابع العامة فقط بشكل مشابه لعمل التابع method. البنية العامة public_method(sym) → method
المعاملات sym رمزٌ يشير إلى اسم التابع المراد البحث عنه. القيم المعادة يُعاد التابع الموافق للاسم sym من الكائن المُعطى، أو يُرمى الاستثناء NameError إذا لم توجد توابع موافقة لهذا الاسم. انظر أيضًا التابع method: يبحث عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا. التابع public_send: يَستدعي التابع المعرَّف برمزٍ محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة. التابع send: يَستدعي التابع ...
التابع Object.methods في روبي
يُعيد التابع methods قائمةً بالتوابع العامَّة والمحميَّة للكائن المعطى. تتضمن هذه القائمة جميع التوابع المتاح الوصول إليها في أسلاف (ancestors) الكائن. إذا مُرِّرت القيمة false للمعامل الاختياري الوحيد في التابع، فسيُعيد مصفوفةً من توابع الكائن (أو عددًامحدَّدًا من الكائنات) المنفردة (singleton) العامَّة والمحميَّة. لن تحتوي هذه المصفوفة على توابع الوحدات المُضمَّنة في الكائن (أو عددًا محدَّدًا من الكائنات). البنية العامة methods(regular=true) → array
المعاملات regular معامل اختياري يأخذ القيمة true (الافتراضيَّة) أو flase. القيم المعادة تُعاد مصفوفةٌ تحوي جميع توابع ...
التابع Module.method_undefined في روبي
غير موثَّق بعد. انظر أيضا التابع method_removed: يستدعى كرد نداء في كل مرة يُزال تابع نسخة (instance method) من المُستقبِل (receiver). التابع method_defined?: يتحقق إن كان التابع المعطى مُعرّفًا في الوحدة أو الصنف. التابع method_added: يُستدعى في كل مرة يُضاف تابع نسخة (instance method) إلى المُستقبِل (receiver). مصادر قسم التابع method_undefined في الصنف Module في توثيق روبي الرسمي.
التابع UnboundMethod.arity في روبي
يعيد المعامل arity مؤشرًا لعدد الوسائط المقبولة من قبل تابع. البنية العامة arity → integer
القيمة المعادة يعاد عدد صحيحً غير سالب للتوابع التي تأخذ عددًا محددًا من الوسائط. بالنسبة لتوابع روبي التي تأخذ عددًا متغيرًا من الوسائط، يًعاد العدد -n-1، حيث n هو عدد الوسائط المطلوبة. الوسائط المسماة (Keyword arguments) ستُعيد وسيطًا إضافيًا واحدًا، وسيكون ذلك الوسيط إلزاميًّا إن كان أيٌّ من الوسائط المسماة كذلك. بالنسبة للتوابع المكتوبة بلغة C، سيُعاد العدد -1 إن كان استدعاء تلك التوابع يأخذ ...
الصنف Struct في روبي
يُعدُّ استخدام الصنف Struct طريقةً ملائمةً لتجميع مجموعة من الخاصيات (attributes) معًا، باستخدام مداخل (accessor methods) دون الحاجة إلى كتابة صنف جديد. يُنشئ الصنف Struct أصنافًا فرعيةً (subclasses) جديدةً تحمل مجموعة من الأعضاء مقرونة بقيمها. لكل عضو يتم إنشاء قارئ (reader method) وكاتب (writer method) مشابهين للتابع Module.attr_accessor. Customer = Struct.new(:name, :address) do
def greeting
"Hello #{name}!"
end
end
dave = Customer.new("Dave", "123 Main")
dave.name #=> "Dave"
dave.greeting #=> "Hello Dave!"
راجع صفحة التابع new ...
التابع Module.define_method في روبي
يعرّف التابع define_method تابع نُسخة (instance method) في المُستقبِل (receiver). في حال تمرير كتلة، فستُستخدم كجسم (body) للتابع. تُقيّم هذه الكتلة باستخدام التابع instance_eval، وهو أمر قد يكون مُشكلًا على البعض، لأن define_method خاصة. (لهذا سنحتال ونستخدم التابع send في المثال التالي.) البنية العامة define_method(symbol, method) → symbol
define_method(symbol) { block }→ symbol
المعاملات symbol رمز. method تابع نُسخة. يمكن أن يكون من النوع Proc أو Method أو UnboundMethod. القيمة المعادة يعاد رمزٌ. أمثلة مثال على استخدام التابع define_method: class A
...
التابع Method.owner في روبي
يعيد التابع owner الصنف أو الوحدة (module) التي تُعرِّف الكائن Method الذي استُدعي معه. البنية العامة owner → class_or_module
القيمة المعادة يعاد الصنف أو الوحدة التي تُعرِّف الكائن Method المعطى. انظر أيضا التابع original_name: يعيد الاسم الأصلي للتابع الذي استُدعي معه. التابع parameters: يعيد معلومات عن وسائط التابع الذي استُدعي معه. مصادر قسم التابع owner في الصنف Method في توثيق روبي الرسمي.
التابع UnboundMethod.inspect في روبي
يعيد inspect اسم التابع الأصلي (underlying method). البنية العامة inspect→ string
القيمة المعادة يعاد اسم التابع الأصلي المعطى. أمثلة مثال على استخدام التابع inspect: "cat".method(:count).inspect #=> "#<Method: String#count>"
انظر أيضًا التابع hash: يعيد القيمة hash المقابلة التابع الحر الذي استُدعي معه. التابع name: يعيد اسم التابع الحر الذي استدعي معه. مصادر قسم التابع inspect في الصنف UnboundMethod في توثيق روبي الرسمي.
التابع Object.send في روبي
يَستدعي التابع send التابع المعرَّف برمزٍ (symbol) ويُنفَّذه تلقائيًا ويمرِّر إليه أي معاملاتٍ معطاة. يمكنك استخدام الاسم __send__ البديل إذا تضارب الاسم مع توابع موجودةٍ في الكائن تحمل نفس الاسم. إن عُرِّف التابع عن طريق سلسلةٍ نصية، فستُحوَّل تلك السلسلة إلى رمز. البنية العامة send(symbol [, args...]) → obj
__send__(symbol [, args...]) → obj
send(string [, args...]) → obj
__send__(string [, args...]) → obj
المعاملات symbol الرَّمزُ المعرِّف للتابع المُعطى. ...args المعاملات المراد تمريرها إلى التابع. القيم المعادة يُعاد الكائن الناتج عن تنفيذ ...
التابع Module.protected_method_defined? في روبي
يتحقق التابع protected_method_defined? إن كان التابع المحمي (protected) المعطى معرفًا في الوحدة (أو الوحدات المُتضمنة فيه، أو أسلافه إن كان صنفًا). البنية العامة protected_method_defined?(symbol)→ true or false
protected_method_defined?(string)→ true or false
المعاملات symbol رمز يمثل التابع. string سلسلة نصية تمثل التابع. يحول هذا المعامل إن أعطي إلى رمز. القيمة المعادة تعاد القيمة true إن كان التابع المحمي المعطى معرفًا في الوحدة (أو الوحدات المُتضمنة فيه، أو أسلافه إن كان صنفًا). خلا ذلك، تعاد القيمة false. أمثلة مثال على استخدام التابع protected_method_defined?: module ...
الصنف BasicObject في روبي
الصنف BasicObject هو الصنف الأب لجميع الأصناف في روبي، وهو صنف فارغ. يمكن استخدام الصنف BasicObject لإنشاء هرميات كائنية (object hierarchies) مستقلة عن الهرمية الكائنية للغة روبي، أو لإنشاء مغلفات الكائنات (proxy objects) مثل الصنف Delegator، أو حيث يجب تجنب إفساد مجال الأسماء (namespace pollution) من قبل توابع وأصناف روبي. لتجنب إفساد الصنف BasicObject للمستخدمين الآخرين، يجب إنشاء صنف فرعي من الصنف BasicObject تحت اسم مناسب بدلاً من تعديل BasicObject مباشرةً: class MyObjectSystem < BasicObject
end
لا يتضمَّن الصنف BasicObject الوحدة Kernel ...
التابع Object.to_enum في روبي
يُنشئ التابع enum_for نسخةً من الصنف Enumerator الذي يجري عملية عدٍّ (enumerate) وتكرار عبر استدعاء التابع المُمرَّر إليها مع كائنٍ محدَّد، وتمرير وسائط إن أعطيت. إذا مُرِّرت كتلة (block) إلى التابع، فستُستخدم لحساب حجم نسخة الصنف Enumerator دون الحاجة إلى تكرارها (ألقِ نظرة على التابع Enumerator.size). البنية العامة enum_for(method = :each, *args) → enum
enum_for(method = :each, *args){|*args| block} → enum
المعاملات method التابع المُمرَّر. القيمة الافتراضية لهذا المعامل هي: each:. args* الوسائط المراد تمريرها إلى التابع. args| block*| الكتلة ووسائطها ...
التابع Object.enum_for في روبي
يُنشئ التابع enum_for نسخةً من الصنف Enumerator الذي يجري عملية عدٍّ (enumerate) وتكرار عبر استدعاء التابع المُمرَّر إليها مع كائنٍ محدَّد، وتمرير وسائط إن أعطيت. إذا مُرِّرت كتلة (block) إلى التابع، فستُستخدم لحساب حجم نسخة الصنف Enumerator دون الحاجة إلى تكرارها (ألقِ نظرة على التابع Enumerator.size). البنية العامة enum_for(method = :each, *args) → enum
enum_for(method = :each, *args){|*args| block} → enum
المعاملات method التابع الذي ستُطبَّق عليه العملية. القيمة الافتراضية لهذا المعامل هي: each:. args* الوسائط المراد تمريرها إلى التابع. args| ...
التابع Module.method_added في روبي
يُستدعَى التابع method_added في كل مرة يُضاف تابع نسخة (instance method) إلى المُستقبِل (receiver). البنية العامة method_added(method_name)
المعاملات method_name اسم تابع النسخة. أمثلة مثال على استخدام التابع method_added: module Chatty
def self.method_added(method_name)
puts "Adding #{method_name.inspect}"
end
def self.some_class_method() end
def some_instance_method() end
end
ناتج تنفيذ هذا المثال هو: Adding :some_instance_method
انظر أيضا التابع instance_methods: يعيد مصفوفة تحتوي على أسماء توابع النسخ (instance methods) العامة والمحمية (protected) في المستقبِل (receiver). التابع method_defined?: يتحقق إن كان التابع المعطى مُعرّفًا في ...
التابع Module.method_removed في روبي
يستدعى التابع method_removed في كل مرة يُزال تابع نسخة (instance method) من المُستقبِل (receiver). البنية العامة method_removed(method_name)
المعاملات method_name اسم تابع النسخة. أمثلة مثال على استخدام التابع method_removed: module Chatty
def self.method_removed(method_name)
puts "Removing #{method_name.inspect}"
end
def self.some_class_method() end
def some_instance_method() end
class << self
remove_method :some_class_method
end
remove_method :some_instance_method
end
ناتج تنفيذ هذا المثال هو: Removing :some_instance_method
انظر أيضا التابع method_defined?: يتحقق إن كان التابع المعطى مُعرّفًا في الوحدة أو ...
الصنف Proc في روبي
كائنات الصنف Proc هي كتلٌ من الشيفرات البرمجية رُبطت إلى مجموعة من المتغيرات المحليَّة. حالما تُربط، يمكن استدعاء الشيفرة في سياقات مختلفة ويبقى الوصول متاحًا لتلك المتغيرات. def gen_times(factor)
return Proc.new {|n| n*factor }
end
times3 = gen_times(3)
times5 = gen_times(5)
times3.call(12) #=> 36
times5.call(5) #=> 25
times3.call(times5.call(4)) #=> 60
توابع الصنف العامة (Public ...
التابع Module.protected_instance_methods في روبي
يعيد التابع protected_instance_methods قائمة بتوابع النسخة (instance methods) المحمية المعرفة في الوحدة. إذا مُرِّرت قيمة إلى التابع وكانت false، فلن تُتضمّن توابع الأسلاف (ancestors). البنية العامة protected_instance_methods(include_super=true)→ array
المعاملات include_super إذا كان هذا الوسيط يساوي false، فلن تُتضمّن توابع الأسلاف (ancestors). القيمة الافتراضية هي: true. القيمة المعادة تعاد مصفوفة تمثِّل قائمة بتوابع النسخة (instance methods) المحمية المعرفة في الوحدة. انظر أيضا التابع protected: يعين المرئية (visibility) الافتراضية للتوابع المعرفة لاحقًا إلى المرئية protected المحمية. التابع protected_method_defined?: يتحقق إن كان التابع المحمي (protected) المعطى ...
التابع Module.private_instance_methods في روبي
يعيد التابع private_instance_methods قائمة بتوابع النسخة الخاصة (private instance methods) المعرفة في الوحدة. إن مُرِّر إلى التابع القيمة false، فلن تُضمّن توابع الأسلاف (ancestors). البنية العامة private_instance_methods(include_super=true) → array
المعاملات include_super قيمة منطقية إن كانت false، فلن تُضمّن توابع الأسلاف (ancestors). القيمة المعادة تعاد مصفوفة تحوي توابع النسخة الخاصة (private instance methods) المعرفة في الوحدة. أمثلة مثال على استخدام التابع private_instance_methods: module Mod
def method1() end
private :method1
def method2() end
end
Mod.instance_methods ...
الصنف ConditionVariable في روبي
توسع كائنات الصنف ConditionVariable عمل الصنف Mutex. فمن الممكن باستخدام المتغيرات الشرطية إيقاف مهمة حرجة (critical section) في أثناء تنفيذها إلى حين إتاحة مورد ما. إليك المثال التالي: mutex = Mutex.new
resource = ConditionVariable.new
a = Thread.new {
mutex.synchronize {
# Thread 'a' now needs the resource
resource.wait(mutex)
# 'a' can now have the resource
}
}
b = Thread.new {
mutex.synchronize {
...
الصنف SystemCallError في روبي
يعتبر الصنف SystemCallError الصنف الأب لكل أصناف الأخطاء منخفضة المستوى المرتبطة بنظام التشغيل. الأخطاء المتوفرة على نظام التشغيل الحالي هي أصناف فرعية من الصنف SystemCallErrorـ وهي مُعرّفة في الوحدة Errno. File.open("does/not/exist")
عند تنفيذ هذا السطر البرمجي، سيطلق استثناء بالشكل التالي: Errno::ENOENT: No such file or directory - does/not/exist
توابع الصنف العامة (Public Class Methods) === يتحقق إن كان الاستثناء الذي استُدعي معه كائنًا عامًا من الصنف SystemCallError، أو إن كان رقما الخطأ الخاصين بهذا الاستثناء والاستثناء الآخر المعطى متساويين. new ...
التابع Object.singleton_method في روبي
يبحث التابع singleton_method في التوابع المنفردة فقط بطريقة مشابهة للتابع method. البنية العامة singleton_method(sym) → method
المعاملات sym الرمز المعرِّف للتابع المنفرد. القيم المعادة يُعاد التابع الموافق للرمز sym المُعطى. أمثلة مثالٌ عن استخدام التابع singleton_method: class Demo
def initialize(n)
@iv = n
end
def hello()
"Hello, @iv = #{@iv}"
end
end
k = Demo.new(99)
def k.hi
"Hi, @iv = #{@iv}"
end
m = k.singleton_method(:hi)
m.call #=> "Hi, @iv = 99"
m = k.singleton_method(:hello) ...
التابع Object.public_methods في روبي
يُعيد التابع public_methods قائمةً بالتوابع العامَّة (public methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها. إذا مُرِّرت القيمة false إلى التابع، فستحتوي القائمة توابع الكائن المستقبل (receiver) فقط. البنية العامة public_methods(all=true) → array
المعاملات all معامل اختياري يحدِّد التوابع المعادة. يأخذ هذا المعامل القيمة true (افتراضيًا)، أو القيمة false. القيم المعادة تُعاد قائمةٌ بالتوابع العامة التي يمتلك الكائن المعطى الوصول إليها إذا لم يعطَ الكائن all، أو ستُعاد قائمة تحتوي توابع الكائن المستقبل (receiver) فقط إذا أعطي المعامل all ...
التابع Module.public_instance_methods في روبي
يعيد التابع public_instance_methods قائمة بتوابع النسخة العامة (public instance methods) المعرفة في الوحدة. إن مُرِّرت قيمة إلى التابع وكانت false، فلن يتم تضمين توابع الأسلاف (ancestors). البنية العامة public_instance_methods(include_super=true)→ array
المعاملات include_super قيمةمنطقية إن كانت false، فلن يتم تضمين توابع الأسلاف (ancestors). القيمة المعادة تعاد مصفوفة تمثِّل قائمةً بتوابع النسخة العامة (public instance methods) المعرفة في الوحدة. انظر أيضا التابع public: يعين المرئية (visibility) الافتراضية للتوابع المعرفة لاحقًا إلى public العامة. التابع public_instance_method: يبحث عن التوابع العامة (public) وحسب على غرار التابع instance_method. التابع public_method_defined?: يتحقق ...
التابع Object.protected_methods في روبي
يُعيد التابع protected_methods قائمةً بالتوابع المحميَّة (protected methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها. إذا مُرِّرت القيمة false إلى التابع، فستحتوي القائمة توابع الكائن المستقبل (receiver) فقط. البنية العامة protected_methods(all=true) → array
المعاملات all معامل اختياري يحدِّد التوابع المعادة. يأخذ هذا المعامل القيمة true (افتراضيًا)، أو القيمة false. القيم المعادة تُعاد قائمةٌ بالتوابع المحميَّة التي يمتلك الكائن المعطى الوصول إليها إذا لم يعطَ الكائن all، أو ستُعاد قائمة تحتوي توابع الكائن المستقبل (receiver) فقط إذا أعطي المعامل all ...
التابع Hash.dig في روبي
يستخرج التابع dig القيمة المتداخلة المحددة بواسطة تسلسل كائنات تمثِّل المفاتيح عن طريق استدعاء dig في كل خطوة، ويعيد القيمة nil إذا كانت أي خطوة متوسطة هي nil. البنية العامة dig(key, ...) → object
المعاملات key المفتاح المتشعب المراد استخراج قيمته. ... سلسلة من المفاتيح المتشعبة. القيمة المعادة تعاد القيمة المرتبطة بالمفتاح key أو سلسلة المفاتيح ... المتشعبة. أمثلة مثال على استعمال التابع dig: h = { foo: {bar: {baz: 1}}}
h.dig(:foo, :bar, :baz) #=> 1
h.dig(:foo, :zot, :xyz) ...
التابع Object.private_methods في روبي
يُعيد التابع private_methods قائمةً بالتوابع الخاصة (private methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها. إذا مُرِّرت القيمة false إلى التابع، فستحتوي القائمة توابع الكائن المستقبل (receiver) فقط. البنية العامة private_methods(all=true) → array
المعاملات all معامل اختياري يحدِّد التوابع المعادة. يأخذ هذا المعامل القيمة true (افتراضيًا)، أو القيمة false. القيم المعادة تُعاد قائمةٌ بالتوابع الخاصة التي يمتلك الكائن المعطى الوصول إليها إذا لم يعطَ الكائن all، أو ستُعاد قائمة تحتوي توابع الكائن المستقبل (receiver) فقط إذا أعطي المعامل all ...
التابع Enumerator::Lazy.enum_for في روبي
يشبه التابع enum_for التابع Kernel.to_enum باستثناء أنه يعيد مُعدِّدًا كسولًا (كائن من النوع Enumerator::Lazy). يجعل هذا من السهل تعريف توابع الصنف Enumerable التي ستبقى كسولة بشكل طبيعي إن استدعيت من مُعدِّد كسول (lazy enumerator). البنية العامة enum_for(method = :each, *args) → lazy_enum
enum_for(method = :each, *args){|*args| block} → lazy_enum
المعاملات method تابع. القيمة الافتراضية هي: each:. args الوسائط المُمرَّرة إلى التابع method. القيمة المعادة يعاد مُعدِّدٌ كسولٌ (كائن من النوع Enumerator::Lazy). أمثلة المثال التالي هو تكملة للمثال الموجود في صفحة التابع Kernel.to_enum: # ...
التابع Enumerator::Lazy.to_enum في روبي
يشبه التابع to_enum التابع Kernel.to_enum باستثناء أنه يعيد مُعدِّدًا كسولًا (كائن من النوع Enumerator::Lazy). يجعل هذا من السهل تعريف توابع الصنف Enumerable التي ستبقى كسولة بشكل طبيعي إن استدعيت من مُعدِّد كسول (lazy enumerator). البنية العامة to_enum(method = :each, *args) → lazy_enum
to_enum(method = :each, *args) {|*args| block} → lazy_enum
المعاملات method تابع. القيمة الافتراضية هي: each:. args الوسائط المُمرَّرة إلى التابع method. القيمة المعادة يعاد مُعدِّدٌ كسولٌ (كائن من النوع Enumerator::Lazy). أمثلة المثال التالي هو تكملة للمثال الموجود في صفحة التابع Kernel.to_enum: ...
التابع Module.attr_accessor في روبي
يحدد التابع attr_accessor خاصية مسماة (named attribute) لهذه الوحدة، إذ يكون الاسم هو نتيجة التعبير symbol.id2name، وينشئ متغير نسخة (@name) وتابع وصول مقابل له (access method) لقراءته. ينشئ أيضًا تابعًا يُسمى name= لتعيين الخاصية. تحول الوسائط النصية إلى رموز. البنية العامة attr_accessor(symbol, ...) → nil
attr_accessor(string, ...) → nil
المعاملات symbol رمز لتحديد الخاصية. string سلسلة نصية لتحديد الخاصية. القيمة المعادة تعاد القيمة nil. أمثلة مثال على استخدام التابع attr_accessor: module Mod
attr_accessor(:one, :two)
end
Mod.instance_methods.sort #=> [:one, :one=, :two, :two=]
...
التابع Module.instance_method في روبي
يعيد التابع instance_method كائنًا من النوع UnboundMethod يمثل تابع النسخة (instance method) المعطى في الوحدة التي استُدعي معها. البنية العامة instance_method(symbol)→ unbound_method
المعاملات symbol كائن من النوع Symbol. القيمة المعادة يعاد كائنٌ من النوع UnboundMethod يمثل تابع النسخة المعطى في الوحدة التي استُدعي معها. أمثلة مثال على استخدام التابع instance_method: class Interpreter
def do_a() print "there, "; end
def do_d() print "Hello "; end
def do_e() print "!\n"; end
def do_v() print ...
الصنف Mutex في روبي
يمكن استخدام الصنف Mutex وكائناته كواجهة لتنسيق الوصول إلى البيانات المشتركة من عدة خيوط (threads) موجودة وتعمل في نفس الوقت. إليك هذا المثال: semaphore = Mutex.new
a = Thread.new {
semaphore.synchronize {
# access shared resource
}
}
b = Thread.new {
semaphore.synchronize {
# access shared resource
}
}
توابع الصنف العامة (Public Class Methods) new ينشئ كائنًا جديدًا من النوع Mutex. توابع النسخة العامة (Public Instance Methods) lock يحاول مسك القفل (grab ...
التابع Object.remove_instance_variable في روبي
يَحذِف التابع remove_instance_variable متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر. البنية العامة remove_instance_variable(symbol) → obj
المعاملات symbol الرَّمز المعرِّف لمتغير النسخة المراد حذفه. القيم المعادة تعاد قيمة متغير النسخة symbol بعد حذفه من الكائن المعطى. أمثلة مثالٌ عن استخدام التابع remove_instance_variable: class Dummy
attr_reader :var
def initialize
@var = 99
end
def remove
remove_instance_variable(:@var)
end
end
d = Dummy.new
d.var #=> ...
التابع Module.method_defined? في روبي
يتحقق التابع method_defined? إن كان التابع المعطى مُعرّفًا في الوحدة أو الصنف (أو في الوحدات المُتضمنة فيه، وإن كان صنفًا في أسلافه). تتم مطابقة التوابع العامة والمحمية. تٌحوّل الوسائط النصية إلى رموز. البنية العامة method_defined?(symbol) → true or false
method_defined?(string) → true or false
المعاملات symbol رمز يمثل التابع. string سلسلة نصية تمثل التابع. القيمة المعادة تعاد القيمة true إن كان التابع المعطى مُعرّفًا في الوحدة أو الصنف. أمثلة مثال على استخدام التابع method_defined?: module A
def method1() end
...
التابع Hash.rassoc في روبي
يبحث التابع rassoc خلال الكائن Hash الذي استدعي معه عن طريق مقارنة القيمة التي مُمرِّرت إليه مع قيم ذلك الكائن باستخدام المعامل == ثم يعيد أول زوج قيمة-مفتاح متطابق. البنية العامة rassoc(obj) → an_array or nil
المعاملات obj الكائن الذي سيُبحَث عنه في الكائن Hash المعطى. القيمة المعادة تعاد مصفوفة من عنصرين تحوي الزوج مفتاح/قيمة المطابقة للقيمة obj المبحوث عنها في الكائن Hash المعطى، أو تعاد القيمة nil إن لم يُعثر على شيء. أمثلة مثال على استعمال التابع rassoc: a = ...
التابع Module.private_method_defined? في روبي
يتحقق التابع private_method_defined? إن كان التابع الخاص (private) المعطى معرَّفًا من قِبَل _ mod_ (أو الوحدات المتضمنة فيه، وأسلافه [ancestors] إن كان صنفًا). البنية العامة private_method_defined?(symbol) → true or false
private_method_defined?(string) → true or false
المعاملات symbol رمز يمثل التابع الخاص. string سلسلة نصية تمثل التابع الخاص. يحول هذا المعامل - إن أعطي - إلى رمز. القيمة المعادة تعاد القيمة true إن كان التابع الخاص (private) المعطى معرفًا من طرف _ mod_ (أو الوحدات المتضمنة فيه، وأسلافه [ancestors] إن كان صنفًا). خلا ...
التابع Hash.assoc في روبي
يبحث التابع assoc ضمن الكائن Hash عن طريق موازنة الكائن المُمرَّر إليه بمفاتيحه باستخدام المعامل == ثم يعيد الزوج قيمة-مفتاح (مصفوفة من عنصرين) أو nil إذا لم يعثر على أي تطابق. البنية العامة assoc(obj) → an_array or nil
المعاملات obj الكائن الذي يمثِّل المفتاح المراد البحث عنه ضمن الكائن Hash المعطى. القيمة المعادة تعاد مصفوفة من عنصرين تحوي الزوج قيمة-مفتاح إن عُثِر على المفتاح المطابق لقيمة المعامل obj، أو تعاد القيمة nil لم يعثر على أي تطابق. أمثلة مثال على استعمال ...
التابع Object.singleton_methods في روبي
يُعيد التابع singleton_methods مصفوفةً تحوي أسماء توابع الكائن المنفردة (singleton methods). إذا مُرِّرت القيمة true إلى التابع، فستتضمَّن القائمة توابع الوحدات المُضمَّنة في الكائن المعطى أيضًا. تُعاد فقط التوابع المنفردة العامَّة والمحميَّة. البنية العامة singleton_methods(all=true) → array
المعاملات all معامل اختياري يأخذ إمَّا القيمة true (افتراضيًا)، أو القيمة false. القيم المعادة تُعاد مصفوفةٌ تحوي أسماء التوابع المنفردة للكائن المعطى إذا لم يعطَ المعامل all أو كانت قيمته true. إذا كانت قيمة المعامل all هي false، فستتضمَّن تلك المصفوفة المعادة التوابع ...
التابع Module.public_method_defined? في روبي
يتحقق التابع public_method_defined? إن كان التابع العام (public method) المعطى معرفًا في الوحدة/الصنف (أو الوحدات المتضمنة فيه، أو أسلافه إن كان صنفا). البنية العامة public_method_defined?(symbol)→ true or false
public_method_defined?(string)→ true or false
المعاملات symbol رمز يمثل التابع. string سلسلة نصية تمثل التابع. يحول هذا المعامل إن أعطي إلى رمز. القيمة المُعادة يعيد التابع public_method_defined? القيمة true إن كان التابع العام المعطى معرفًا بواسطة في الوحدة/الصنف (أو الوحدات المتضمنة فيه، أو أسلافه إن كان صنفا)، وإلا فسيعيد false. أمثلة مثال على استخدام التابع public_method_defined?: module A
...
الصنف Fiber في روبي
الألياف (Fibers) هي حقولٌ أساسيّةٌ (primitives) تُستخدم في تنفيذ تعدّد المهام التشاركي (cooperative concurrency) للمهام الخفيفة (light weight) أي التي تستهلك جزءًا صغيرًا من الذاكرة. تعني أساسيًّا إنشاء كتل شيفرات يمكن إيقافها مؤقتًا واستئنافها، كما هو الحال مع الخيوط (threads). الفرق الأساسي في الألياف أنه لا يمكن إيقافها مؤقّتًا من قبل مهام أخرى تنفذ من قبل النظام (Preemption) وأن الجدولة (scheduling) يجب أن تتمَّ من قبل المبرمج وليس من قبل الآلة الافتراضية (virtual machine). على عكس نماذج تعدد المهام التشاركية ...
التابع Object.public_send في روبي
يَستدعي التابع public_send التابع المعرَّف برمزٍ (symbol) محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة. خلافًا للتابع send، يَستدعي التابع public_send التوابع العامة فقط. إن عُرِّف التابع باستخدام سلسلةٍ نصيةٍ (string)، فستُحوَّل هذه السلسلة إلى رمز. البنية العامة public_send(symbol [, args...]) → obj
public_send(string [, args...]) → obj
المعاملات symbol الرَّمز المُعرِّف للتابع المراد استدعاءه. string سلسلة نصية تعرِّف التابع المراد استدعاءه. ستُحوَّل هذه السلسلة إلى رمز إن أعطيت. ...args المعاملات المراد تمريرها إلى التابع الذي يراد استداعاؤه. القيم المعادة يُعاد ...
Ruby/Topics
تثبيت روبي توجد طرائق عدَّة لتنزيل وتثبيت روبي على كل منصة وهي: إمَّا استعمال أنظمة مدير الحزم، أو باستعمال المثبِّتات التلقائية، أو باستعمال مدراء روبي. هنالك طريقة أخرى يمكنك بالتأكيد استعمالها لتثبيت روبي وتصريف شيفراتها وهي بنائها من الشيفرة المصدرية مباشرةً. حول روبي يوفر هذا القسم لمحة سريعة عن لغة روبي ونشأتها، وتطورها، ومزاياها التي انفردت بها عن اللغات الأخرى، والتنفيذات المختلفة التي تملكها. البنية العامة بنية اللغة تعد روبي مزيجًا من اللغات البرمجية التالية: Perl، و Smalltalk، و Eiffel، ...
التابع Marshal.dump في روبي
يُسلسل (Serializes) التابع dump الكائن المعطى وجميع الكائنات المنحدرة منه (descendant objects). في حال تمرير كائن من النوع IO، فستُكتب البيانات المُسَلسلة فيه، وإلا فستُعاد البيانات كسلسلة نصية. البنية العامة dump( obj [, anIO] , limit=-1 ) → anIO
في حال تمرير المعامل limit، فسيقتصر التابع dump على سَلسَلة الكائنات الفرعية حتى العمق المحدد. إذا كان limit سالبًا، لن يكون هناك أي تحقق من للعمق. لا يمكن للتابع Marshal تفريغ (dump) الكائنات التالية: الوحدات أو الأصناف المجهولة (anonymous Class/Module). الكائنات المرتبطة بالنظام (مثل ...
التابع Module.module_function في روبي
ينشئ التابع module_function دوال وحدة (module functions) للتوابع المعطاة. يمكن استدعاء هذه الدوال مع الوحدة كمُستقبِلات (receiver)، كما يمكن أن تصبح متاحةً كتوابع نسخة (instance methods) للأصناف التي تُمزج (mix) في الوحدة. دوال النوع Module هي نسخ من الدوال الأصلية، وبالتالي يمكن تغييرها بشكل مستقل. توابع النسخة (instance-method) ستتحول إلى خاصة. وإذا تم استدعاء التابع module_function دون معاملات، فستصبح التوابع التي ستُعرَّف لاحقًا دوال وحدة (module functions). تُحوّل الوسائط النصية إلى رموز. البنية العامة module_function(symbol, ...) → self
module_function(string, ...) → self
المعاملات ...
الوحدات والأصناف في روبي
الوحدات تخدم الوحدات (Modules) غايتين اثنتين في لغة روبي وهما: ميّزة نطاقات الأسماء (namespace)، والخلط الضمني (mix-in) التي سنوضّحها لاحقًا. يستخدم نطاق الأسماء لتنظيم الشيفرة البرمجية ضمن مجموعات مستقلّة تمنع تداخل التوابع والمتغيّرات ذات الأسماء المتشابهة فيما بينها. فعلى سبيل المثال، نطاق الأسماء IRB يوفّر عمليات irb والتي تمنع التصادم مع الاسم الشائع "Context". وظيفة الخلط الضمني (Mix-in) تسمح بمشاركة توابع مشتركة عبر عدد من الأصناف أو الوحدات، إذ يأتي مع لغة روبي على سبيل المثال الوحدة Enumerable التي توفّر ...
الصنف InstructionSequence في روبي
يمثل الصنف InstructionSequence تسلسلًا مصرّفًا (compiled sequence) للتعليمات الخاصة بالآلة الافتراضية (Virtual Machine) لروبي. يمكّنك هذا الصنف من الحصول على مؤشر (handle) للتعليمات التي تشكل التابع أو الكتلة البرمجية، وتصريف (compile) سلاسل روبي النصية إلى تعليمات الآلة الافتراضية (VM)، وتفكيك التعليمات إلى سلاسل نصية لتسهيل فحصها. هذا الصنف مفيد للغاية إن كنت ترغب في معرفة كيفية عمل آلة روبي الافتراضية، لكنه يتيح لك أيضًا التحكم في إعدادات المُصرِّف iseq لروبي. يمكنك العثور على مصدر إرشادات الآلة الافتراضية في الصفحة insns.defفي ...
تثبيت روبي على مختلف المنصات
توجد عدة طرق لتنزيل وتثبيت روبي على كل منصة وهي: في لينكس (والأنظمة الشبيه بيونكس)، تستطيع استعمال نظام مدير الحزم لتوزيعتك (الطريقة الأسهل) أو أية أداة من طرف ثالث (مثل rbenv و RVM). على أي حال، إصدار روبي المثبت عن طريق نظام مدير الحزم قد لا يكون هو الإصدار الأحدث، لذا انتبه لهذا الأمر. في macOS، يمكنك استعمال مدير الحزم أو أداة من طرف ثالث (مثل rbenv و RVM). في ويندوز، تستطيع استخدام RubyInstaller. يمكنك باستعمال المثبِّت هذا تثبيت إصدار ...
التابع UnboundMethod.name في روبي
يعيد التابع name اسم التابع الحر الذي استُدعي معه. البنية العامة name → symbol
القيمة المعادة يعاد اسم التابع الحر المعطى. انظر أيضًا التابع inspect: يعيد اسم التابع الأصلي (underlying method). التابع original_name: يعيد الاسم الأصلي للتابع الحر الذي استُدعي معه. مصادر قسم التابع name في الصنف UnboundMethod في توثيق روبي الرسمي.
الصنف KeyError في روبي
يُطلق الاستثناء KeyError عندما لا يكون المفتاح (key) المُحدد موجودًا، وهو صنف فرعي من IndexError. h = {"foo" => :bar}
h.fetch("foo") #=> :bar
h.fetch("baz") #=> KeyError: key not found: "baz"
توابع الكائن العامة (Public Instance Methods) key يعيد المفتاح الذي تسبب في رمي الخطأ KeyError. receiver يعيد المتلقي (receiver) المقترن بالاستثناء KeyError. مصادر قسم الصنف KeyError في توثيق روبي الرسمي.
عرض (500 السابقة | 500 التالية) (20 | 50 | 100 | 250 | 500).