نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

التابع new في الصنف Class في روبي

يُنشئ التابع new صنفًا جديدًا مجهولًا غير مسمى (unnamed) من الصنف الأب ( superclass) المُمرَّر إليه (أو من الصنف Object إن لم يمرر إليه أي شيء). يمكن إعطاء صنف ما اسمًا عن طريق تعيين كائن الصنف (class object) وإعطائه قيمة ثابتة. إن أعطيت كتلة برمجية، فسيُمرَّر إليها كائن الصنف (class object)، وستقدَّر الكتلة في سياق ذلك الصنف كما هو الحال مع class_eval. عيِّن الصنف وأعطه قيمة ثابتة (يبدأ الاسم بأحرف كبيرة) إذا كنت تريد معاملته كصنف اعتيادي. البنية العامة new(super_class=Object) ...

التابع UnboundMethod.super_method‎ في روبي

يعيد التابع super_method كائنًا من النوع Method للصنف الأب (superclass)، حتى يمكن استدعاؤه عند استخدام المتغير super، أو يعيد nil إن لم يكن هناك تابع في الصنف الأب. البنية العامة super_method → method‎ القيمة المعادة يعاد كائنٌ من النوع Method للصنف الأب (superclass)، أو تعاد القيمة nil إن لم يكن هناك تابع في الصنف الأب. انظر أيضًا التابع source_location: يعيد اسم الملف المصدر لروبي ورقم السطر الذي يحتوي هذا التابع. التابع to_s: يعيد الاسم الأصلي التابع الحر (underlying method). مصادر قسم التابع ...

التابع new في الصنف Class في روبي

يستدعي التابع new التابعَ allocate لإنشاء كائن جديد من الصنف class، ثم يستدعي التابع initialize مع ذلك الكائن المنشأ ويُمرِّر إليه وسائط محددة. هذا هو التابع الذي يُستدعى كلما أريد إنشاء كائن باستخدام التابع ‎.new. البنية العامة new(args, ...) → obj المعاملات args الوسيط المراد تمريره إلى التابع initialize عند استدعائه. ... الوسائط الأخرى المراد تمريرها إلى التابع initialize عند استدعائه. القيم المعادة يعاد الكائن الذي أنشئ. انظر أيضًا التابع allocate: يحجز مساحةً من الذاكرة لكائن جديد من الصنف class ...

سلاسل الرسائل (Message Chains)

توصيف المشكلة وجود العديد من الاستدعاءات المتسلسلة في الشيفرة، مثل: ‎$a->b()->c()->d()‎. أسبابها تحدث المشكلة عند طلب العميل (client request) كائنًا (object) آخر والذي بدوره يطلب كائنًا آخر ثالثًا وهكذا، مما يعني اعتماد العميل على التنقّل (navigation) في بنية الأصناف (class structure)، وبالتالي فإنّ أيّ تعديلٍ في تلك العلاقات سيتطلَّبُ إجراء التعديلات أيضًا على العميل بحدِّ ذاته. وما الحل؟ إخفاء التفويض (hide delegate) لحذف الاستدعاءات المُتسلسلة. قد يساعد -ببعض الحالات- التفكيرُ بسبب الوصول إلى آخر كائنٍ (object) مستدعى، وعندها يمكن اللجوء ...

الدالة compact()‎ في PHP

(PHP 4, PHP 5, PHP 7) تنشئ الدالة compact()‎ مصفوفة تحتوي على متغيرات وقيمها. الوصف array compact ( mixed $varname1 [, mixed $... ] ) تنشئ هذه الدالة مصفوفةً تحتوي على متغيرات وقيمها. لكل من هذه المعاملات، تبحث الدالة compact()‎ عن متغير بهذا الاسم في جدول الرموز (symbol table) الحالي وتضيفه إلى المصفوفة المُخرَجة بحيث يصبح اسم المتغير هو المفتاح وتصبح محتويات المتغير قيمة ذلك المفتاح. باختصار، تعمل هذه الدالة بعكس الدالة extract()‎. وتتخطى الدالة أية سلاسل نصية (string) لم تُضبَط ...

الدالة compact()‎ في PHP

(PHP 4, PHP 5, PHP 7) تنشئ الدالة compact()‎ مصفوفة تحتوي على متغيرات وقيمها. الوصف array compact ( mixed $varname1 [, mixed $... ] ) تنشئ هذه الدالة مصفوفةً تحتوي على متغيرات وقيمها. لكل من هذه المعاملات، تبحث الدالة compact()‎ عن متغير بهذا الاسم في جدول الرموز (symbol table) الحالي وتضيفه إلى المصفوفة المُخرَجة بحيث يصبح اسم المتغير هو المفتاح وتصبح محتويات المتغير قيمة ذلك المفتاح. باختصار، تعمل هذه الدالة بعكس الدالة extract()‎. وتتخطى الدالة أية سلاسل نصية (string) لم تُضبَط ...

الأصناف البديلة (alternative) ذات الواجهات (interfaces) المختلفة

توصيف المشكلة التطابق بالمهام (function) ما بين صنفين (classes) ولكن بأسماءٍ مختلفةٍ لتوابعهما (methods). أسبابها عدم دراية المبرمج بوجود صنفٍ آخر يكافِئ بمهامّه مهامّ الصنف الحالي الذي ينشِئه. وما الحل؟ حذف أحد الصنفين بعد تنفيذ إحدى الحلول الآتية: إعادة تسمية التوابع (methods) لتصبح متطابقةً بكافّة الأصناف البديلة (alternative) (أي الأصناف المتكافئة بالمهام). توحيد التوقيع (signature) وتعريف الاستخدام ما بين التوابع، وذلك إمّا بنقل التابع (move method) أو إضافة المعاملات (add parameters) أو دمج التوابع عبر المعاملات (parameterize method). إن كان ...

إنشاء التوابع (Composing Methods)

تستهدف إعادة التصميم بشكل رئيسيٍّ إنشاء التوابع الصحيحة المناسبة، إذ تكون التوابع الطويلة سببًا للمشاكل في كثيرٍ من الحالات، وتجعل شيفرات بعض التوابع منطق التنفيذ (execution logic) غامضًا ويصبح التابع بهذا عصيَّ الفهم من جهةٍ وصعب التغييرٍ من جهة ثانية. يشمل هذا القسم من الحلول كلَّ ما يتعلق بالتوابع وإزالة التكرار (duplicates) في الشيفرة ليسمح بإجراء التطويرات المستقبليّة، وهذه التقنيات هي: استخراج التوابع (Extract Methods) المشكلة: وجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. الحل: نقل الشيفرة إلى تابعٍ (method) ...

إنشاء التوابع (Composing Methods)

تستهدف إعادة التصميم بشكل رئيسيٍّ إنشاء التوابع الصحيحة المناسبة، إذ تكون التوابع الطويلة سببًا للمشاكل في كثيرٍ من الحالات، وتجعل شيفرات بعض التوابع منطق التنفيذ (execution logic) غامضًا ويصبح التابع بهذا عصيَّ الفهم من جهةٍ وصعب التغييرٍ من جهة ثانية. يشمل هذا القسم من الحلول كلَّ ما يتعلق بالتوابع وإزالة التكرار (duplicates) في الشيفرة ليسمح بإجراء التطويرات المستقبليّة، وهذه التقنيات هي: استخراج التوابع (Extract Methods) المشكلة: وجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. الحل: نقل الشيفرة إلى تابعٍ (method) ...

أصناف البيانات (Data Classes)

توصيف المشكلة وجود العديد من أصناف البيانات في الشيفرة، والتي تُستخدَم لتخزين البيانات التي تحتاج إليها الأصناف الأخرى، إذ تحتوي على حقولٍ للبيانات (fields) وتوابع للوصول إليها (accessors) أي توابعَ للحصول على بيانات الحقول (getter) وأخرى لتعديلها (setter)، ولا تقوم هذه الأصناف بأيّ مهمّة أخرى ولا تستطيع كذلك تنفيذ العمليات (operations) على بياناتها بمفردها. أسبابها من الطبيعي أن يحتوي الصنف -بادئ الأمر- على القليل من الحقول العامّة (public fields) وبعض التوابع للوصول إليها (accessors) ولكن إن استمرَّ الصنف كذلك فلن ...

عرض (20 السابقة | 20 التالية) (20 | 50 | 100 | 250 | 500).