نتائج البحث

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

استخدام التعليمة Switch

توصيف المشكلة وجود تركيبٍ معقَّدٍ لتعليمة switch أو عدّة تعليمات if متسلسلة. أسبابها ما يميِّز البرمجة كائنيّة التوجّه (OO) هو اعتمادها النادر على المعاملين switch و case، إذ تُوزَّع شيفرة switch بمواقع مختلفة من البرنامج بدلًا من تجمعيها في تعليمة switch واحدةٍ، وعند إضافة شرطٍ جديدٍ عليك إيجاد كافّة شيفرات switch لتعديلها، وكقاعدة عامّة: وجود تعليمة switch يعني أن عليك البدء بالتفكير بمبدأ التعدديّة الشكليّة (polymorphism). وما الحل؟ عزل تعليمة switch ووضعها بالصنف الصحيح عبر إنشاء صنفٍ (class) ونقل التابع ...

استبدال المُنشئ بتابع التصميم (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 ...

مُعدِّلات النمط Pattern Modifiers‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎

فيما يلي مُعدِّلات PCRE الحالية الممكنة. وتشير الأسماء الموجودة بين قوسين إلى أسماء PCRE الداخلية لها. وتُتَجاهل المسافات والسطور الجديدة في المعدّلات، بينما تتسبب الأحرف الأخرى في حدوث خطأ. i (PCRE_CASELESS)‎ إذا ضُبِط هذا المُعدِّل، تتطابق الحروف في النمط مع الحروف الكبيرة والصغيرة. m (PCRE_MULTILINE)‎ تعامل PCRE سلسلةَ الهدف افتراضيًا كما لو كانت مكونة من "سطر" واحد من الحروف (حتى إذا كان يحتوي بالفعل على عدة سطور جديدة). ويتطابق الحرف الخاص "بداية السطر" ورمزه ^ فقط في بداية السلسلة النصية، ...

الوسيط (Middle Man)

توصيف المشكلة عندما يكون للصنف (class) مهمةٌ واحدةٌ فقط وهي تفويض المهام (delegation) لصنفٍ آخر، فما أهمية وجوده بالأصل؟ أسبابها قد تنتج المشكلة عن التخلُّص المفرط من الاستدعاءات المتسلسلة كعلاجٍ لمشكلة سلاسل الرسائل (message chains). أو قد تنتُج عن النقل التدريجيّ للصنف (class) إلى أصناف أخرى ليبقى الصنف الأصليّ فارغًا إلا من أوامر التفويض (delegation). وما الحل؟ حذف الوسيط (remove middle man) إن كانت معظم أصناف التابع (method's classes) تفوِّض المهام (delegate) إلى صنفٍ آخر. إليك المزيد ستحصل بحلِّ المشكلة ...

تبسيط استدعاءات التوابع (Simplifying Method Calls)

تجعل التقنيات التي سيشار إليها في هذا القسم استدعاءات التوابع أبسط وأسهل للفهم والاستيعاب. سيؤدي ذلك بدوره إلى تبسيط الواجهات للتفاعل بين الأصناف. هذه التقنيات هي: إعادة تسمية التوابع (Rename Method) المشكلة: لا يعبِّر اسم التابع عن ما يقوم به. الحل: إعادة تسمية التابع. إضافة المعاملات (Add Parameter) المشكلة: لا يملك التابع بيانات كافية لتنفيذ بعض الإجراءات. الحل: إنشاء معامل جديد لتمرير البيانات الضرورية. حذف المعاملات (Remove Parameter) المشكلة: لا يُستخدم معاملٌ ما في متن التابع. الحل: إزالة المعامل غير ...

الصنف 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 ...

اختبارات قواعد البيانات في Laravel

مقدمة يزوّدك Laravel بمجموعة من الأدوات المفيدة لتسهيل اختبار تطبيقاتك المقادة بواسطة قواعد البيانات. أولاً، يمكنك استخدام التابع المساعد assertDatabaseHas للتأكد من أن البيانات موجودة ضمن قاعدة البيانات ضمن مجموعة الشروط المعطاة. على سبيل المثال، إن أردت التأكد من أن سجلًا ما موجود ضمن جدول users ببريد مطابق لـ sally@example.com، يمكنك فعل التالي: public function testDatabase() { // القيام بمناداة التطبيق... $this->assertDatabaseHas('users', [ 'email' => 'sally@example.com' ...

الربط بين الجداول

تخزن البيانات عادةً في قواعد البيانات بأكثر من جدول لتسهيل تنظيمها وإدارتها، وتُربط هذه الجداول فيما بينها من خلال الأعمدة المترابطة فيما بينها، وذلك بالاعتماد على مفهومي المفتاح الأولي Primary Key والمفتاح الثانوي Foreign Key، وله عدة أنواع ستُذكر تباعًا. أنواع ربط الجداول توجد عدة أنواع للربط بين جدولين (أو أكثر)، إذ يسمى الجدول الأول يساريًا والجدول الثاني يمينًا: الربط الداخلي INNER JOIN: تحديد بعض السجلات من الجدول اليساري والجدول اليميني بحيث تحقق شرط الربط. الربط اليساري LEFT JOIN: تحديد ...

تبديل التابع إلى كائن التابع (Replace Method with Method Object)

المشكلة وجود تابعٍ طويلٍ بالكثير من المتغيِّرات المحليّة (local variables) المتداخلة والتي تحول دون تطبيق تقنية الحل باستخراج التابع (extract method). الحل نقل التابع إلى صنفٍ (class) مستقلٍ بحيث تصبح متغيِّراته المحليّة حقولًا (fields) لهذا الصنف، وتقسيم التابع بعد ذلك إلى عدّة توابع أصغر في الصنف ذاته. مثال قبل إعادة التصميم نلاحظ وجود العديد من المتغيِّرات المحليّة في التابع price()‎ بالإضافة إلى عملياتٍ أخرى قد تكون طويلةً ومعقَّدة: في لغة Java: class Order { //... public double price() ...

المعامل EXISTS

يستخدم المعامل EXISTS للتأكد من وجود سجلات ناتجة عن الاستعلام الفرعي المستخدم في الاستعلام الرئيسي. مثال إن كان في قاعدة البيانات الجدولان الآتيان: الجدول الأول: جدول الطلاب students RegDate CourseID LastName FirstName StudentID ‎07-JUL-2017‎ 0206 Najjar Rama 1147 ‎08-NOV-2017‎ 0604 Kordi Jenan 1148 ‎07-JUL-2017 0206 Bitar Rahaf 1149 ‎20-AUG-2017 0607 Taweel Farah 1150 ‎08-NOV-2017 0610 Arab Rami 1151 ‎24-OCT-2017 0803 Akkad Aya 1152 ‎08-NOV-2017 0504 Haddad Abed 1153 ‎20-AUG-2017 0801 Fares Tasneem 1154 ‎24-OCT-2017 0607 Hamsho Monther 1155 ‎30-SEP-2017 0607 ...

الربط اليساري LEFT JOIN

يُستخدم هذا النوع من الربط ما بين جدولين (أو أكثر) وذلك لتحديد كافة السجلات من الجدول اليساري وبعض السجلات من الجدول اليميني التي تحقق شرط الربط، وتكون له البنية العامّة الآتية: SELECT col_names FROM tbl_name1 LEFT [OUTER] JOIN tbl_name2 ON col_name1 = col_name2 مثال إن كانت قاعدة بيانات أحد المراكز التعليمية تحتوي على الجداول الآتية: الجدول الأول: جدول الطلاب students (المفتاح الأولي فيه هو عمود StudentID والمفتاح الثانوي هو عمود CourseID للربط مع جدول الدورات التدريبية) RegDate CourseID LastName FirstName StudentID ...

الربط الداخلي INNER JOIN

يُستخدم هذا النوع من الربط ما بين جدولين (أو أكثر) وذلك لتحديد بعض السجلات من الجدول اليساري والجدول اليميني بحيث تحقق شرط الربط، وتكون له البنية العامّة الآتية: SELECT col_names FROM tbl_name1 [INNER] JOIN tbl_name2 ON col_name1 = col_name2 وكما يُلاحظ أن وجود كلمة INNER اختياريّ لأن الربط الداخلي هو الحالة الافتراضية في الربط. مثال إن كانت قاعدة بيانات أحد المراكز التعليمية تحتوي على الجداول الآتية: الجدول الأول: جدول الطلاب students (المفتاح الأولي فيه هو عمود StudentID والمفتاح الثانوي هو عمود CourseID ...

إنشاء التوابع (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 أسطر! لِمَ؟ أسبابها إنَّ ما يحدث دائمًا أنْ يُضاف للتابع لا أن يُحذَف منه! وذلك لسهولة كتابة الإضافات للشيفرة مقارنةً مع قراءتها، ولن تظهر هذه المشكلة واضحةً إلا بعد تفاقمها ووصولها لحدِ لا يُحتمَل، وكذلك يجد المبرمج أنَّ كتابة تابعٍ جديدٍ أكثرُ مشقّةً من الإضافة لتابعٍ موجودٍ مسبقًا، إذ يفكر: "هما سطران وحسب، ولا داعي لتخصيص ...

العقود (Contracts) في Laravel

مقدمة عقود Laravel هي مجموعة من الواجهات (interfaces) التي تعرِّف الخدمات المركزية التي يوفرها إطار العمل. على سبيل المثال، يعرِّف العقد Illuminate\Contracts\Queue\Queue  الدوال اللازمة لصف الأعمال في الطوابير، بينما يعرِّف عقد Illuminate\Contracts\Mail \Mailer الدوال اللازمة لإرسال رسائل البريد الإلكتروني. لكل عقد تعريف استخدام (implementation) يوفره إطار العمل. على سبيل المثال، يوفِّر Laravel تعريف استخدام للطابور لعدة أنواع من المشغلات (drivers) كما يوفِّر تعريف استخدام للمُرسِل مشغل بواسطة SwiftMailer. توجد كل عقود Laravel في مستودعات في GitHub. هذا يوفر نقطة مرجعية سريعة لكل ...

هياكل المكتبات في TypeScript

مقدمة طريقة هيكلة ملفّ التصريحات الخاص بك تعتمد عمومًا على كيفيّة اعتماد المستخدمين على المكتبة. هناك عدّة طرق يُمكن بها توفير المكتبة ليستخدمها الآخرون في JavaScript. وستحتاج إلى كتابة ملفّ تصريحاتٍ ملائم حسب هيكل المكتبة التي ترغب بكتابة ملفّ تصريحات لها. يغطي هذا الدليل كيفيّة التعرّف على أنماط المكتبات الشائعة، وكيفيّة كتابة ملف تصريحاتٍ مناسب لنمط المكتبة. يوجد لكل نمط من أنماط هيكلة المكتبات الشائعة ملفٌّ ملائم له في قسم القوالب. يمكنك البدء بهذه القوالب لكتابة ملف التصريحات بشكل أسرع. ...

الدالة sqlite3.connect()‎ في بايثون

تفتح هذه الدالة اتصالًا مع قاعدة بيانات SQLite عبر الملف المعطى، وتعيد افتراضيًا كائن اتصال ما لم تحدد قيمة أخرى في المعاملات. البنية العامة sqlite3.connect(database[, timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements, uri]) المعاملات database كائن شبيه بالمسار path-like يمثّل مسار ملف قاعدة البيانات (المسار المطلق أو النسبي للمجلد الحالي) الذي سيتم الاتصال به. يمكن استخدام القيمة ":memory:" لفتح اتصال مع قاعدة بيانات تخزّن في ذاكرة الوصول العشوائي RAM بدلًا من القرص الصلب. إذا أجريت عدة اتصالات بقاعدة بيانات واحدة، وأجرى ...

تعبير تعريف الدوال

الكلمة المحجوزة function تُستخدَم لتعريف دالة داخل تعبير (expression). يمكنك أيضًا تعريف الدوال عبر التصريح عنها function declaration أو عبر الدالة البانية Function. البنية العامة var myFunction = function [name]([param1[, param2[, ..., paramN]]]) { statements }; name اسم الدالة، ويمكن حذفه وحينئذٍ ستسمى الدالة بالدالة المجهولة؛ واسم الدالة لن يكون متاحًا إلا داخل الدالة نفسها (يمكن أن يستعمل لتنفيذها تعاوديًا [recursively]). param اسم الوسيط المُرَّر إلى الدالة، العدد الأقصى للوسائط التي يمكن تمريرها إلى الدالة يختلف حسب المحرِّك الذي ...

تحويل التوابع إلى معاملات (Parameterize Method)

المشكلة تؤدي توابع متعددة أعمالًا مماثلة تختلف فقط من حيث قيمها الداخلية أو أرقامها أو عملياتها. الحل تجميع هذه التوابع باستخدام معامل يُمرر القيمة الخاصة الضرورية. مثال قبل إعادة التصميم يؤدي التابعان ()fivePercentRaise و ()tenPercentRaise الغرض ذاته باختلاف النسبة المئوية المراد زيادتها للموظف Employee: يؤدي التابعان أعمالًا مماثلة تختلف فقط من حيث قيمها الداخلية أو أرقامها أو عملياتها. بعد إعادة التصميم تجميع التابعان السابقان في تابع واحد يدعى ()raise مع تمرير النسبة المئوية المتغيرة إليه: يجمع التابعين باستخدام معامل يُمرر ...

المعامل ===‎ الخاص بالصنف Method في روبي

يستدعي المعامل === كتلة التابع مع تمرير الكائن الواقع على يمينه كوسيط إلى المعامل الواقع على يساره كما هو الحال في Proc.call. هذا يَسمح لكائنٍ من النوع proc أن يكون هدفًا للكتلة when في التعليمة case. البنية العامة proc === obj→ result_of_proc‎ القيمة المعادة تعاد نتيجة الوسيط proc. انظر أيضا التابع ==: يتحقق من تساوي كائنين من النوع Method. مصادر قسم التابع ===‎ في الصنف Method‎ في توثيق روبي الرسمي.

إعادة تسمية التوابع (Rename Method)

المشكلة لا يعبِّر اسم التابع عن ما يقوم به. الحل إعادة تسمية التابع. مثال قبل إعادة التصميم لا يفسر اسم التابع ()getsnm في الصنف Customer ما يقوم به. لا يفسر اسم التابع ما يقوم به. بعد إعادة التصميم إعادة تسمية التابع ()getsnm إلى ()getSecondName الذي يصف ما يقوم به. يفسر اسم التابع ما يقوم به. لم إعادة التصميم؟ ربما كانت تسمية تابعٍ ما سيئة من البداية - على سبيل المثال، أنشأ شخصٌ ما التابع في عجلة ولم يهتم كفاية بتسميته ...

المعامل ‎[]‎‎ الخاص بالصنف 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. مصادر قسم ...

طريقة الاستعمال وتشغيل الأمثلة في Node.js

البنية العامة node [options] [V8 options] [script.js | -e "script" | - ] [arguments] راجع رجاءً توثيق خيارات سطر الأوامر للمزيد من المعلومات عن الخيارات والطرائق التي يمكن استعمالها لتشغيل السكربتات وتنفيذها مع Node.js. تشغيل الأمثلة سنشرح مثالًا عن إنشاء خادم ويب باستعمال Node.js يُظهِر العبارة 'مرحبًا بالعالم!' في المتصفح. تبدأ الأوامر المستعملة في هذا المثال بالمحرف $ أو < وذلك لمحاكاة كيفيَّة ظهورها في طرفيَّة المستخدم، لذا لا تضف هذين المحرفين إلى الأوامر عند نسخها واستعمالها. توجد الكثير من الدروس ...

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

(PHP 4 >= 4.3.0,PHP 5, PHP 7) تتحقَّق الدالة fnmatch()‎ من تطابق اسم ملف محدَّد مع نمط معيّن. الوصف bool fnmatch ( string $pattern , string $string [, int $flags = 0 ] ) تتحقَّق هذه الدالة من تطابق السلسلة النصيَّة string المُمرَّرة مع النمط pattern الذي يمكن أن يُستعمل معه محارف البدل الخاصة (wildcard) المُستخدمة في الصدفة. المعاملات pattern النمط المراد مُطابقته مع السلسلة النصيَّة string. يمكن استعمال محارف الصدفة الخاصة (wildcard ويشار إليها أيضًا meta characters) لإنشاء النمط. string ...

التابع Connection.cursor()‎ في بايثون

يعيد التابع نسخة من صنف Cursor أو أحد أصنافه الفرعية. البنية العامة cursor(factory=Cursor) ‎المعاملات factory يأخذ هذا التابع معاملًا اختياريًا واحدًا، وعند تعيينه يجب أن يكون كائنًا قابلًا للاستدعاء callable يعيد نسخة من صنف Cursor أو أحد أصنافه الفرعية. القيمة المعادة يعيد التابع نسخة من صنف Cursor أو أحد أصنافه الفرعية. أمثلة يبين المثال التالي آلية عمل التابع: import sqlite3 conn = sqlite3.connect('example.db') c = conn.cursor() مصادر صفحة DB-API 2.0 interface for SQLite databases في توثيق بايثون الرسمي.

التابع Connection.cursor()‎ في بايثون

يعيد التابع نسخة من صنف Cursor أو أحد أصنافه الفرعية. البنية العامة cursor(factory=Cursor) ‎المعاملات factory يأخذ هذا التابع معاملًا اختياريًا واحدًا، وعند تعيينه يجب أن يكون كائنًا قابلًا للاستدعاء callable يعيد نسخة من صنف Cursor أو أحد أصنافه الفرعية. القيمة المعادة يعيد التابع نسخة من صنف Cursor أو أحد أصنافه الفرعية. أمثلة يبين المثال التالي آلية عمل التابع: import sqlite3 conn = sqlite3.connect('example.db') c = conn.cursor() مصادر صفحة DB-API 2.0 interface for SQLite databases في توثيق بايثون الرسمي.

RegExp.prototype.[@@replace]()‎

الدالة RegExp.prototype.[@@replace]()‎ تُعيد سلسلةً نصيةً جديدةً فيها بعض أو جميع الأجزاء المُطابَقة عبر النمط this قد استبدلتها السلسلة النصية replacement. لاحظ أنَّ النمط pattern يمكن أن يكون سلسلةً نصيةً أو كائن RegExp، ويمكن أن يكون الوسيط replacement سلسلةً نصيةً أو دالةً التي ستُستدعى لكل مُطابَقة. البنية العامة regexp[Symbol.replace](str, newSubStr|function) str السلسلة النصية التي سنبحث عن مُطابَقة للتعبير النمطي فيها لاستبداله. newSubStr السلسلة النصية String التي ستستبدل السلسلة الفرعية، وهنالك عددٌ من الأنماط الفرعية المدعومة فيها، انظر قسم «تحديد سلسلة نصية كوسيط» في صفحة الدالة String.prototype.replace()‎ للتفاصيل. function الدالة ...

مفاتيح الجداول

تستخدم المفاتيح بهدف الربط ما بين الجداول في قواعد البيانات. المفتاح الأوليّ PRIMARY KEY هو عمود (أو أكثر) من الجدول والذي يميّز السجلات عن بعضها، تكون القيم فيه فريدة (غير مكررة) ولا يمكن ألّا يحتوي قيمة (قيمته NULL)، ويكون للجدول مفتاح أولي وحيد. المفتاح الثانويّ FOREIGN KEY هو عمود (أو أكثر) من الجدول والذي يمكن عدّه مرجعيةً (reference) لعمود آخر في جدول ثانٍ (وغالبًا ما يكون هذا العمود هو المفتاح الأولي للجدول الثاني). مثال تحتوي قاعدة بيانات أحد المراكز التعليمية ...

الوحدة copyreg‎ في بايثون

تقدّم وحدة copyreg طريقة لتعريف دوال تستخدم أثناء سلسلة كائنات معيّنة في بايثون. تستخدم وحدتا pickle و copy هذه الدوال عند سلسلة أو نسخ تلك الكائنات. تقدّم الوحدة كذلك معلومات إعدادات حول الدوال البانية للكائنات التي ليست أصنافًا. يمكن لهذه الدوال البانية أن تكون دوال منشئة للكائنات factory functions أو نسخًا للأصناف. دوال الوحدة copyreg تقدّم الوحدة copyreg الدوال التالية: الدالة ‎copyreg.constructor()‎ تصرّح هذه الدالة عن كون الكائن المعطى دالة بانية صحيحة. إن كان الكائن المعطى غير قابل للاستدعاء (وهكذا ...

Python/pathlib/Path/glob

التابع Path.glob في بايثون تعيد جميع الملفات التي تحقق نمط glob المعطى، مهما كان نوع الملف البنية العامة glob(pattern) المعاملات الوسيط pattern نمط glob المُراد مُطابقته. القيمة المعادة يُعيد قائمة عناصرها كائنات مسار، تُمثّل جميع الملفات التي تحقق نمط glob المعطى. أمثلة يبين المثال التالي طريقة استخدام التابع: >>> sorted(Path('.').glob('*.py')) [PosixPath('pathlib.py'), PosixPath('setup.py'), PosixPath('test_pathlib.py')] >>> sorted(Path('.').glob('*/*.py')) [PosixPath('docs/conf.py')] استخدام النمط "**" يعني النمط "**" تحديد المجلد الحالي وجميه المجلدات الفرعية في داخله بشكل عودي (recursively)، وهو ما يسمّى recursive globbing >>> sorted(Path('.').glob('**/*.py')) [PosixPath('build/lib/pathlib.py'), PosixPath('docs/conf.py'), PosixPath('pathlib.py'), PosixPath('setup.py'), PosixPath('test_pathlib.py')] ملاحظة: احذر من ...

بذر قواعد البيانات بالبيانات الاختبارية Seeding في Laravel

مقدمة يتضمّن Laravel تابع بسيط لملء قاعدة البيانات الخاصة بك مع بيانات للتجربة باستخدام أصناف البذر. ستجد جميع أصناف البذر في مجلّد database/seeds، وقد تحتوي أصناف البذر على أي اسم تريده، لكن ربما يجب عليك اتباع بعض المعايير المعقولة مثل UsersTableSeeder ...إلخ. وبشكل افتراضي، سيكون صنف DatabaseSeeder معرّف لك، ومن خلال هذا الصنف يمكنك استخدام أسلوب call لتشغيل بقيّة أصناف البذر، مما يسمح لك بالتحكم بترتيب البذر. كتابة منشئات البذور لتوليد منشئ البذرة (seeder)، نفّذ أمر make:seeder Artisan وستجد جميع ...

التابع match.expand()‎ في بايثون

يجري هذا التابع عملية استبدال التسلسلات المسبوقة بالخط المائل العكسي بالاعتماد على قالب متمثّلٍ بسلسلة نصية. البنية العامة match.expand(template) المعاملات template سلسلة نصية تتضمّن تسلسلات مسبوقة بالخط المائل العكسي تمثّل القالب الذي سيستخدمه التابع لإجراء عمليات الاستبدال. القيمة المعادة يعيد التابع السلسلة النصية الناتجة عن إجراء عمليات عملية استبدال التسلسلات المسبوقة بالخط المائل العكسي بالاعتماد على قالب متمثّلٍ بسلسلة نصية، وبنفس طريقة عمل التابع regex.sub()‎. إذ تُحوّل تسلسلات التهريب مثل ‎\n إلى المحارف المقابلة، وتحوّل الإشارات الخلفية الرقمية مثل (‎\2، ...

الاستثناء re.error()‎ في بايثون‎

تطلق اللغة هذا الاستثناء عند تمرير سلسلة نصية غير صالحة كتعبير نمطي إلى إحدى الدوال السابقة (كأن تتضمن السلسلة أقواسًا غير متطابقة)، أو عند حدوث أخطاء أخرى أثناء عملية التصريف أو المطابقة. لا يعد خلوّ السلسلة النصية من التطابقات خطأً على الإطلاق. البنية العامة re.error(msg, pattern=None, pos=None) الخاصيات تمتلك نسخة الخطأ الخصائص الإضافية التالية: msg رسالة الخطأ غير المنسّقة. pattern التعبير النمطي. pos موقع حدوث الخطأ في تصريف التعبير النمطي (قد يأخذ القيمة None). lineno السطر الحاوي على قيمة الخاصية ...

الدالة re.search()‎ في بايثون‎

تفحص الدالة السلسلة النصية بحثًا عن أول موقع يحصل فيه تطابق مع التعبير النمطي المعطى، وتعيد كائن match المقابل. البنية العامة re.search(pattern, string, flags=0) المعاملات pattern التعبير النمطي المستخدم لإجراء عملية المطابقة. string السلسلة النصية التي ستبحث فيها الدالة عن حالات التطابق. flags الرايات المستخدمة لضبط عملية البحث. يأخذ هذا المعامل القيمة 0 كقيمة افتراضية. راجع قسم المعاملات في توثيق الدالة ()re.compile للمزيد من المعلومات. القيمة المعادة تعيد الدالة كائن match عند العثور على حالة تطابق بين التعبير النمطي والسلسلة ...

ازالة توابع الإعدادات (Remove Setting Method)

المشكلة يكون تعيين قيمة الحقل فقط عند إنشائه، ولا تتغير في أي وقت لاحق. الحل إزالة التوابع التي تضبط قيمة الحقل. مثال قبل إعادة التصميم يضبط التابع ()setImmutableValue قيمةً غير قابلة للتغيير أو التعديل في المستقبل: يغيّر التابع من قيمة الحقل. بعد إعادة التصميم حذف التابع ()setImmutableValue من الصنف Customer: إزالة التابع الذي يضبط قيمة الحقل. لم إعادة التصميم؟ إذا كنت تريد منع أي تغييرات في قيمة الحقل. آلية الحل يجب أن تكون قيمة الحقل قابلة للتغيير فقط في الباني. ...

تعريف التوابع الدخيلة (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 إلى الصنف الأعلى. لم إعادة التصميم؟ تنمو الأصناف الفرعية وتتطور بشكل مستقل عن بعضها البعض، مما يتسبب ...

التابع call‎ الخاص بالصنف Method في روبي

يستدعي call كتلة التابع الذي استٌدعي معه، ويضبط وسائط الكتلة عند القيم المُمرَّرة إليه باستخدام صياغة مشابهة لصياغة استدعاء التوابع ثم يعيد قيمة آخر تعبير تم تقييمه في الكتلة. لاحظ أن ‎prc.()‎ يستدعي prc.call()‎ مع تمرير المعاملات المعطاة. وهي صياغة مختصرة لإخفاء التابع "call". بالنسبة للكائنات procs التي تم إنشاؤها باستخدام lambda أو ‎->()‎‎‎، سيُطلق خطأ إذا كان عدد المعاملات الممررة إلى proc غير صحيح. بالنسبة للكائنات proc التي تم إنشاؤها باستخدام Proc.new أو Kernel.proc ، سيتم تجاهل المعاملات الإضافية ...

التابع Symbol.match?‎‎ في روبي

يعيد التابع match?‎ ناتج التعبير sym.to_s.match?‎. البنية العامة match?(pattern) → true or false match?(pattern, pos)→ true or false‎ المعاملات pattern النمط المراد التحقق من مطابقته للرمز المعطى. القيمة المعادة تعاد القيمة true إن طابق النمط pattern الرمز المعطى. خلا ذلك، تعاد القيمة false. انظر أيضا التابع match: يعيد ناتج التعبير sym.to_s.match. مصادر قسم التابع match?‎ في الصنف Symbol‎ في توثيق روبي الرسمي.

الدالة re.split()‎ في بايثون‎

تقسم الدالة السلسلة النصية عند كل مكان تحدث فيه عملية مطابقة للنمط المعطى. البنية العامة re.split(pattern, string, maxsplit=0, flags=0) المعاملات pattern التعبير النمطي المستخدم لإجراء عملية المطابقة. string السلسلة النصية التي ستبحث فيها الدالة عن حالات التطابق. maxsplit العدد الأقصى من التقسيمات التي تجريها الدالة على السلسلة النصية. في حال كان العدد الأقصى من التقسيمات أقل من عدد حالات المطابقة فإنّ الدالة تعيد ما يبقى من السلسلة النصية ليكون العنصر الأخير في القائمة المعادة. يأخذ هذا المعامل القيمة الافتراضية 0. ...

Python/pathlib/Path/rglob

التابع PurePath.rglob في بايثون مشابه لاستدعاء التابع glob عند إضافة '**' في بداية النمط المُعطى البنية العامة >>> sorted(Path().rglob("*.py")) [PosixPath('build/lib/pathlib.py'), PosixPath('docs/conf.py'), PosixPath('pathlib.py'), PosixPath('setup.py'), PosixPath('test_pathlib.py')] المعاملات الوسيط pattern النمط المُراد مطابقته. القيمة المعادة مشابه لاستدعاء التابع glob عند إضافة '**' في بداية النمط المُعطى أمثلة يبين المثال التالي طريقة استخدام التابع: >>> sorted(Path().rglob("*.py")) [PosixPath('build/lib/pathlib.py'), PosixPath('docs/conf.py'), PosixPath('pathlib.py'), PosixPath('setup.py'), PosixPath('test_pathlib.py')] انظر أيضًا مصادر

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

(PHP 4 >= 4.3.0, PHP 5, PHP 7) تبحث الدالة glob()‎ عن مسارات محدَّدة لملفات أو مجلَّدات والتي تتطابق مع نمط مُعطى. الوصف array glob ( string $pattern [, int $flags = 0 ] ) تبحث هذه الدالة عن جميع المسارات التي تُطابق النمط pattern وفقًا للقواعد التي تستخدمها المكتبة libc للدالة glob()‎، والتي تشبه نظيرتها المستخدمة من قبل أشهر الصدفات (shells). المعاملات pattern التعبير النمطي المُعطى. الرمز ~ (المَدَّة [tilde]) غير مدعوم، كما أنَّه لا يُجرى أي عملية استبدال للمعاملات. ...

التابع File.fnmatch في روبي

يتحقق التابع fnmatch من تطابق مسار مع نمط محدَّد. هذا النمط ليس تعبيرًا نظاميًّا بل يتبع قواعد مشابهة لتعميم أسماء الملفات في الصدفة. البنية العامة fnmatch( pattern, path, [flags] ) → (true or false) fnmatch?( pattern, path, [flags] ) → (true or false) المعاملات pattern النمط المراد منه مطابقة المسار path المعطى. يمكن أن يحتوي على المحارف الخاصَّة (metacharacters، أو تدعى محارف الصدفة أيضًا) التالية: المحرف الخاص الوصف * يطابق أي ملف. يمكن أن يُقيَّد بقيم أخرى في النطاق العام (glob). هذا ...

التابع File.fnmatch?‎ في روبي

يتحقق التابع fnmatch?‎ من تطابق مسار مع نمط محدَّد. هذا النمط ليس تعبيرًا نظاميًّا بل يتبع قواعد مشابهة لتعميم أسماء الملفات في الصدفة. البنية العامة fnmatch?( pattern, path, [flags] ) → (true or false) المعاملات pattern النمط المراد منه مطابقة المسار path المعطى. يمكن أن يحتوي على المحارف الخاصَّة (metacharacters، أو تدعى محارف الصدفة أيضًا) التالية: المحرف الخاص الوصف * يطابق أي ملف. يمكن أن يُقيَّد بقيم أخرى في النطاق العام (glob). هذا المحرف يقابل ‎/ * /x‎. في التعابير النظامية. ...

الدالة re.fullmatch()‎ في بايثون‎

تتحقّق الدالة ممّا إذا كانت السلسلة النصية بأكملها مطابقة للتعبير النمطي المعطى. البنية العامة re.fullmatch(pattern, string, flags=0) المعاملات pattern التعبير النمطي المستخدم لإجراء عملية المطابقة. string السلسلة النصية التي ستبحث فيها الدالة عن حالات التطابق. flags الرايات المستخدمة لضبط عملية البحث. يأخذ هذا المعامل القيمة 0 كقيمة افتراضية. راجع قسم المعاملات في توثيق الدالة ()re.compile للمزيد من المعلومات. القيمة المعادة إن طابقت السلسلة النصية بأكملها التعبير النمطي المعطى، فستعيد الدالة كائن match المقابل، وتعيد القيمة None إن لم تطابق السلسلة ...

التابع String.gsub!‎ في روبي

يبدل التابع gsub!‎ قيمة (أو قيم) محدَّدة مكان جميع الأنماط المتطابقة في السلسلة النصية التي استدعي معها. هذا التابع مماثل تمامًا للتابع gsub ولكن يعدل على السلسلة المعطاة نفسها. البنية العامة gsub!(pattern, replacement) → str or nil gsub!(pattern, hash) → str or nil gsub!(pattern) {|match| block } → str or nil gsub!(pattern) → an_enumerator المعاملات pattern يكون عادةً تعبيرًا نمطيًّا. إن كان سلسلة نصية، فستُفسَّر أية محارف خاصة بالتعبيرات النمطية الموجودة فيها حرفيًّا؛ أي '‎\\d' سيطابق خط مائل عكسي يتبعه الحرف 'd' مباشرةً ...

 التابع Dir.glob في روبي

يوسّع التابع glob الوسيطَ pattern الممرّر (انظر فقرة البنية العامة)، الذي هو سلسلة نصية نمطية (pattern string) أو مصفوفة من السلاسل النصية النمطية، ويعيد مصفوفة تحتوي أسماء الملفات المُطابقة لذلك النمط. في حال تم إعطاء كتلة (block)، فسيستدعي التابع glob الكتلة مرة واحدة على كل اسم ملف مطابق، إذ سيمرّر اسم الملف كوسيط إلى الكتلة. يحدِّد الوسيط base الاختياري المجلد الأساسي (base directory) لتفسير أسماء المسارات النسبية بدلاً من مجلد العمل الحالي. وبما أنّ النتائج لا تكون مسبوقة باسم المجلد ...

التابع String.scan في روبي

يبحث التابع scan عن نمط محدَّد ضمن السلسلة النصية التي استدعيت معه ويعيد النتائج المتطابقة في مصفوفة أو يمرِّرها إلى الكتلة المعطاة ويعيد الناتج الذي تعيده. البنية العامة scan(pattern) → array scan(pattern) {|match, ...| block } → str المعاملات pattern تعيبر نمطي أو سلسلة نصية يراد البحث عنها ومطابقتها في السلسلة النصية المعطاة. إن لم يحتوي هذا المعامل على مجموعات، فستتألف كل نتيجة فردية من السلسلة النصية المتطابقة (أي &$). أمَّا إن احتوى على مجموعات، فستكون كل نتيجة فردية مصفوفةً بحد ...

التصريح عن الكائنات (Object Declarations) وتعابيرها (Expressions) في لغة Kotlin

قد تحتاج في بعض الأحيان لإنشاء كائنٍ بإجراء تعديلاتٍ طفيفةٍ على أحد الأصناف (classes) بدون التصريح عن صنفٍ فرعيٍّ (subclass) له؛ تعالج لغة Java مثل هذه الحالات بالاعتماد على الأصناف الداخليّة المجهولة (anonymous inner classes)، وتُعمِّمها لغة Kotlin من خلال طرح مفهوم التصريح عن الكائنات وتعابيرها. تعابير الكائنات (Object Expressions) لإنشاء كائنٍ من صنفٍ مجهولٍ (anonymous) يرِث من نوعٍ أو أكثر تكون الشيفرة بالشكل: window.addMouseListener(object : MouseAdapter() { override fun mouseClicked(e: MouseEvent) { ...

الدالة Regex.toPattern()‎ في Kotlin

تحول الدالة toPattern()‎ كائنًا من النوع Regex (تعبيرًا نمطيًا) إلى النوع Pattern (نمط). بناءً على ذلك، توفر هذه الدالة وسيلة لاستعمال الكائن Regex في المكان الذي يطلب فيه استعمال الكائن Pattern. البنية العامة fun toPattern(): Pattern المنصة المطلوبة: JVM. القيمة المعادة تعاد نسخةٌ من الصنف Pattern لها نفس السلسلة النصية النمطية (pattern string) والخيارات التي يملكها التعبير النمطي المعطى. أمثلة ينشِئ التابع Regex()‎ في الشيفرة التالية تعبيرًا نمطيًا باسم reg لمطابقة القيم العددية، ثم يُستدعَى معه الدالة toPattern()‎ لتحويل ذلك التعبير النمطي إلى النمط Pattern: fun main(args: Array<String>) ...

التابع String.gsub في روبي

يعيد التابع gsub نسخة من السلسلة النصية التي استدعيت معه مع تبديل قيمة (أو قيم) محدَّدة مكان جميع الأنماط المتطابقة فيها. البنية العامة gsub(pattern, replacement) → new_str gsub(pattern, hash) → new_str gsub(pattern) {|match| block } → new_str gsub(pattern) → enumerator إن أعطيت كتلة block إلى التابع، فستُمرَّر السلسلة الحالية المتطابقة إليها وستعيَّن قيم متغيرات مثل ‎$1، و ‎$2، و ‎$`‎، و ‎$&‎، و ‎$'‎ بشكل مناسب. ستحل القيم التي تعيدها الكتلة مكان القيمة المتطابقة في كل استدعاء. المعاملات pattern يكون عادةً تعبيرًا نمطيًّا. إن ...

الدالة re.finditer()‎ في بايثون‎

تعيد الدالة كائنًا قابلًا للتكرار iterator ينتج عنه كائنات match لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المعطى على السلسلة النصية المعطاة. البنية العامة re.finditer(pattern, string, flags=0) المعاملات pattern التعبير النمطي المستخدم لإجراء عملية المطابقة. string السلسلة النصية التي ستبحث فيها الدالة عن حالات التطابق. flags الرايات المستخدمة لضبط عملية البحث. يأخذ هذا المعامل القيمة 0 كقيمة افتراضية. راجع قسم المعاملات في توثيق الدالة ()re.compile للمزيد من المعلومات. القيمة المعادة تعيد الدالة كائنًا قابلًا للتكرار iterator ينتج ...

الدالة re.match()‎ في بايثون‎

تفحص الدالة بداية السلسلة النصية بحثًا عن حالة تطابق مع التعبير النمطي المعطى، وتعيد كائن match المقابل. البنية العامة re.match(pattern, string, flags=0) المعاملات pattern التعبير النمطي المستخدم لإجراء عملية المطابقة. string السلسلة النصية التي ستبحث فيها الدالة عن حالات التطابق. flags الرايات المستخدمة لضبط عملية البحث. يأخذ هذا المعامل القيمة 0 كقيمة افتراضية. راجع قسم المعاملات في توثيق الدالة ()re.compile للمزيد من المعلومات. القيمة المعادة تعيد الدالة كائن match المقابل إن عثرت على صفر أو أكثر من المحارف في بداية ...

التابع Enumerable.grep_v في روبي

يعدُّ التابع grep_v نسخة معاكسة للتابع grep، إذ يعيد مصفوفة تحوي كل العناصر الغير مطابقة لنمط محدَّد من عناصر الكائن القابل للتعداد المعطى. البنية العامة grep_v(pattern) → array grep_v(pattern) { |obj| block } → array المعاملات pattern النمط المراد مطابقته لكل عنصر من عناصر الكائن القابل للتعداد المعطى. القيمة المعادة تعاد مصفوفة تحوي كل عنصر غير مطابق للنمط pattern من عناصر الكائن القابل للتعداد المعطى، أو القيم التي تعيدها الكتلة لكل عنصر غير مطابق للنمط بعد تمريره إليها. أمثلة مثال على استعمال التابع ...

الواجهات الساكنة (Facades) في Laravel

مقدمة تُوفِّر الواجهات الساكنة واجهة "ساكنة" (static) للأصناف المتوافرة في حاوي خدمات تطبيقك. يأتي Laravel مع عدة واجهات تمكنك من استخدام كل خاصيات Laravel تقريبًا. تمثل واجهات Laravel الساكنة "وسطاء ساكنات" (static proxies) للأصناف الأساسية بحاوي الخدمات مما يوفر كل فوائد الصِّيغ (syntax) المقتضبة والمُعبِّرة مع الحفاظ على قابلية الاختبار ومرونة أكبر من الدالات الساكنة التقليدية. كل واجهات Laravel الساكنة مُعرَّفةٌ في مجال الأسماء Illuminate\Support\Facades. يمكننا الوصول لواجهة ساكنة بهذه الطريقة: use Illuminate\Support\Facades\Cache; Route::get('/cache', function () { return ...

التابع String.match?‎ في روبي

يحول التابع match?‎ النمط المُمرَّر إليه إلى تعبير نمطي (إن لم يكن كذلك) ثم يتحقق من مطابقته من السلسلة النصية التي استدعي معها دون تحديث قيمة المتغير ~$ والمتغيرات الأخرى المماثلة. البنية العامة match?(pattern) → true or false match?(pattern, pos) → true or false المعاملات pattern التعبير النمطي المراد مطابقته للسلسلة النصية المعطاة. إن يكن تعبيرًا نمطيًّا، فسيُحوَّل النمط المعطى إلى تعبير نمطي. pos إن أعطي هذا المعامل الاختياري، فسيُحدِّد موضع بدء عملية المطابقة في السلسلة النصية المعطاة. القيمة المعادة تعاد القيمة ...

التابع Enumerable.grep في روبي

يعيد التابع grep مصفوفة تحوي كل عنصر مطابق لنمط محدَّد من عناصر الكائن القابل للتعداد الذي استدعي معه. إن أعطيت كتلة، فسيُمرَّر كل عنصر مطابق للنمط إليها ثم تعاد مصفوفة تحوي النتائج المقابلة التي تعيدها هذه الكتلة للعناصر المطابقة. البنية العامة grep(pattern) → array grep(pattern) { |obj| block } → array المعاملات pattern النمط المراد مطابقته لكل عنصر من عناصر الكائن القابل للتعداد المعطى. القيمة المعادة تعاد مصفوفة تحوي كل عنصر مطابق للنمط pattern من عناصر الكائن القابل للتعداد المعطى، أو القيم التي ...

واجهات الكائنات في PHP

تتيح واجهات الكائنات إنشاء شيفرة تحدّد التوابع التي يجب أن يتضمّنها الصنف دون الحاجة إلى تعريف آلية التحكّم في هذه التوابع. تعرّف الواجهات بنفس طريقة تعريف الأصناف، ولكن باستخدام الكلمة المفتاحية interface بدل الكلمة المفتاحية class ودون تعريف محتوى أيّ تابعٍ في الواجهة. يجب أن تكون جميع التوابع المصرّح عنها في الواجهة من النوع public وهذه هي طبيعة الواجهة. يمكن التصريح عن تابع بانٍ في الواجهة، وهو أمر مفيد في بعض الحالات، كاستخدام التابع من قبل المعامل factories. العامل implements ...

واجهات الكائنات في PHP

تتيح واجهات الكائنات إنشاء شيفرة تحدّد التوابع التي يجب أن يتضمّنها الصنف دون الحاجة إلى تعريف آلية التحكّم في هذه التوابع. تعرّف الواجهات بنفس طريقة تعريف الأصناف، ولكن باستخدام الكلمة المفتاحية interface بدل الكلمة المفتاحية class ودون تعريف محتوى أيّ تابعٍ في الواجهة. يجب أن تكون جميع التوابع المصرّح عنها في الواجهة من النوع public وهذه هي طبيعة الواجهة. يمكن التصريح عن تابع بانٍ في الواجهة، وهو أمر مفيد في بعض الحالات، كاستخدام التابع من قبل المعامل factories. العامل implements ...

التابع String.sub في روبي

يعيد التابع sub نسخة من السلسلة النصية التي استدعي معها مع تبديل قيمة محدَّدة مع أول تطابق للنمط المعطى. البنية العامة sub(pattern, replacement) → new_str sub(pattern, hash) → new_str sub(pattern) {|match| block } → new_str إن أعطيت كتلة block إلى التابع، فستُمرَّر السلسلة الحالية المتطابقة إليها وستعيَّن قيم متغيرات مثل ‎$1، و ‎$2، و ‎$`‎، و ‎$&‎، و ‎$'‎ بشكل مناسب. ستحل القيم التي تعيدها الكتلة مكان القيمة المتطابقة في كل استدعاء. المعاملات pattern يكون عادةً تعبيرًا نمطيًّا. إن كان سلسلة نصية، فستُفسَّر أية محارف ...

التابع Enumerable.slice_before في روبي

يقطِّع التابع slice_before عناصر الكائن القابل للتعداد إلى أجزاء تحدَّد بدايتها عبر نمطٍ محدِّدٍ أو كتلةٍ معطاةٍ ثم يعيد مُعدِّد لكل جزء من الأجزاء الناتجة. البنية العامة slice_before(pattern) → an_enumerator slice_before { |elt| bool } → an_enumerator إن كان النمط مطابقًا للعنصر (أي يعيد pattern === elt القيمة true) أو أعادت الكتلة القيمة true للعنصر المُمرَّر إليها، فسيُعدُّ العنصر بدايةً لجزء. يُستدعَى المعامل === والكتلة block من أول عنصر وحتى آخر عنصر من عناصر الكائن القابل للتعداد المعطى. يجري دومًا تجاهل النتيجة ...

التابع String.sub!‎ في روبي

يبدل التابع sub!‎ قيمة محدَّدة مكان أول تطابق للنمط معطى في السلسلة النصية التي استدعي معها. هذا التابع مماثل تمامًا للتابع sub ولكن يعدل على السلسلة المعطاة نفسها. البنية العامة sub!(pattern, replacement) → str or nil sub!(pattern) {|match| block } → str or nil المعاملات pattern يكون عادةً تعبيرًا نمطيًّا. إن كان سلسلة نصية، فستُفسَّر أية محارف خاصة بالتعبيرات النمطية الموجودة فيها حرفيًّا؛ أي '‎\\d' سيطابق خط مائل عكسي يتبعه الحرف 'd' مباشرةً بدلًا من عددٍ. replacement إن كان سلسلة نصية، فسيحل مكان النص المتطابق. قد يحوي ...

التابع Enumerable.none?‎ في روبي

يتحقق التابع none?‎ من خلو كائن قابل للتعداد من أي عنصر محقِّق للكتلة المعطاة (لا تعيد مع أي عنصر القيمة true) أو مطابق للنمط محدَّد. البنية العامة none? [{ |obj| block }] → true or false none?(pattern) → true or false المعاملات pattern نمط يراد التحقق من عدم مطابقته لأي عنصر من عناصر الكائن القابل للتعداد المعطى. القيمة المعادة تعاد القيمة true إن لم تعيد الكتلة block القيمة true لجميع عناصر الكائن القابل للتعداد بعد تمرير كل واحد منها إليها، أو لم يتطابق ...

التابع FileTest.all?‎ في روبي

يُمرِّر التابع all?‎ كل عنصر من عناصر المجموعة التي استدعيت معه إلى الكتلة المعطاة ثمَّ يتحقق من عدم إعادة هذه الكتلة القيمة false أو nil مع كل عنصر من تلك العناصر. إن لم تعطَ أية كتلة، فستُضيف روبي الكتلة { ‎|obj| obj } والتي تدفع التابع لإعادة القيمة true عندما لا تكون قيمة كل عنصر من عناصر المجموعة هي false أو nil. إن مُرِّر نمط إلى التابع all?‎ بدلًا من الكتلة، فسيتحقق من تطابق هذا النمط مع كل عنصر من عناصر المجموعة المعطاة. ...

التابع String.match في روبي

يحول التابع match النمط المُمرَّر إليه إلى تعبير نمطي (إن لم يكن كذلك) ثم يطابقه مع السلسلة النصية التي استدعيت معه. البنية العامة match(pattern) → matchdata or nil match(pattern, pos) → matchdata or nil إن أعطيت كتلة، فستُستدعَى مع الكائن MatchData المعاد إن نجحت عملية المطابقة، وبذلك يمكننا كتابة: str.match(pat) {|m| ...} بدلًا من: if m = str.match(pat) ... end وستكون القيمة المعادة هي القيمة التي تعيدها الكتلة بعد انتهاء تنفيذها في هذه الحالة. المعاملات pattern التعبير النمطي المراد مطابقته للسلسلة النصية المعطاة. إن ...

كائنات UserDict‎ في بايثون

يعدّ UserDict صنفًا يغلّف كائنات القاموس في بايثون، ولكن الحاجة إلى هذا الصنف أصبحت محدودة نظرًا لإمكانية التفريع المباشر من الصنف dict، ولكن التعامل مع هذا الصنف أسهل بسبب إمكانية الوصول إلى القاموس الضمني كخاصية. البنية العامة ‎class collections.UserDict([initialdata]) يحاكي الصنف UserDict القاموس العادي في بايثون، وتحتفظ اللغة بمحتويات النسخة في قاموس عادي يمكن الوصول إليه عن طريق خصائص نسخة الصنف UserDict. تُهيّئ نسخة الصنف UserDict مع محتويات المعامل initialdata عند توفّرها، مع ملاحظة أنّه لا يتم الاحتفاظ بإشارة إلى ...

التابع Array.any?‎ في روبي

يتحقق التابع any?‎ إذا كان كل عنصر من عناصر المصفوفة المعطاة مححقًا لشرط منطقي محدد أو كانت قيمة كل عنصر لا تساوي القيمة false (أي لا يعيد أي عنصر القيمة false أو nil عند التحقق من مطابقته للشرط). إن لم تمرَّر أية كتلة برمجية تمثل الشرط، فستضيف روبي الكتلة { ‎ |obj| block} ضمنيًا، وسيعيد حينئذٍ التابع any?‎ القيمة true إن لم يتساوى أي عنصر من عناصر المصفوفة مع القيمة false أو القيمة nil. إن مرِّر نمطٌ (pattern) بدلًا من ...

التابع Enumerable.one?‎ في روبي

يتحقق التابع one?‎ من احتواء كائن قابل للتعداد على عنصر واحد فقط محقِّق للكتلة المعطاة (لا تعيد مع أي عنصر القيمة true باستثناء عنصر واحد فقط) أو مطابق للنمط محدَّد. البنية العامة one? [{ |obj| block }] → true or false one?(pattern) → true or false المعاملات pattern نمط يراد التحقق من مطابقته لعنصر واحد فقط من عناصر الكائن القابل للتعداد المعطى. القيمة المعادة تعاد القيمة true إن إن أعادت الكتلة block القيمة true لعنصر واحد فقط من عناصر الكائن القابل للتعداد بعد ...

التهيئة الأولية للصنف Regex في Kotlin

تنشئ الدالة Regex()‎ تعبيرًا نمطيًا (regular expression) انطلاقًا من السلسلة النصية المُمرّرة إليه. البنية العامة Regex(pattern: String) Regex(pattern: String, option: RegexOption) Regex(pattern: String, options: Set<RegexOption>) تنشئ الدالة Regex()‎ تعبيرًا نمطيًا من النمط pattern مع ضبطه وفقًا الخيار option أو مجموعة الخيارات options (أو القيمة الافتراضية لهذه الخيارات إن لم يعطَ الوسيط option) التي تضبط ذلك النمط. المعاملات pattern سلسلة نصية تمثل النمط الذي سينشأ منه تعبير نمطي. option كائن من النوع RegexOption يحوي خيارًا واحدًا من خيارات التعابير النمطية. options مجموعة تتألف من ...

التهيئة الأولية للصنف Regex في Kotlin

تنشئ الدالة Regex()‎ تعبيرًا نمطيًا (regular expression) انطلاقًا من السلسلة النصية المُمرّرة إليه. البنية العامة Regex(pattern: String) Regex(pattern: String, option: RegexOption) Regex(pattern: String, options: Set<RegexOption>) تنشئ الدالة Regex()‎ تعبيرًا نمطيًا من النمط pattern مع ضبطه وفقًا الخيار option أو مجموعة الخيارات options (أو القيمة الافتراضية لهذه الخيارات إن لم يعطَ الوسيط option) التي تضبط ذلك النمط. المعاملات pattern سلسلة نصية تمثل النمط الذي سينشأ منه تعبير نمطي. option كائن من النوع RegexOption يحوي خيارًا واحدًا من خيارات التعابير النمطية. options مجموعة تتألف من ...

التابع Symbol.match‎ في روبي

يعيد التابع match ناتج التعبير sym.to_s.match. البنية العامة match(pattern) → matchdata or nil match(pattern, pos)→ matchdata or nil‎ المعاملات pattern‎ نمط يراد به مطابقة الرمز المعطى. pos‎ موضع بدء عملية المطابقة. القيمة المعادة يعاد كائنٌ من النوع Matchdata يحوي نتائج التطابق. انظر أيضًا التابع match?‎: يعيد ناتج التعبير sym.to_s.match?‎. مصادر قسم التابع match‎ في الصنف Symbol‎ في توثيق روبي الرسمي.

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

(PHP 4, PHP 5, PHP 7) تُعيد الدالة preg_grep()‎‎ عناصر المصفوفة التي تطابق النمط. الوصف array preg_grep ( string $pattern , array $input [, int $flags = 0 ] ) تُعيد هذه الدالة مصفوفة تتكون من عناصر المصفوفة input والتي تتطابق مع النمط pattern المُدخَل. العوامل pattern النمط المراد البحث عنه، كسلسلة نصية. input المصفوفة المُدخَلة. flags إذا ضبطت على PREG_GREP_INVERT، فستُعيد هذه الدالة عناصر مصفوفة الإدخال التي لا تتطابق مع النمط pattern المُدخل. القيم المعادة تُعيد هذه الدالة مصفوفة مفهرسة ...

التابع sub‎ الخاص بالصنف Kernel في روبي

يكافئ التابع sub التعبير ‎‎‎$_‎.sub( args )‎ ، باستثناء أنه سيتم تحديث ‎$_‎ إذا حدث استبدال. متوفر فقط عند تحديد خيار سطر الأوامر ‎-p/-n. البنية العامة sub(pattern, replacement)→ $_ sub(pattern) {|...| block } → $_‎ القيمة المعادة يعاد ناتج استدعاء التعبير ‎‎‎$_‎.sub( args )‎. انظر أيضا التابع gsub: يكافئ التعبير ‎$_.gsub...‎، باستثناء أنه سيتم تحديث ‎$_‎ في حال حدوث استبدال. مصادر قسم التابع sub‎ في الصنف Kernel‎ في توثيق روبي الرسمي.

التابع String.split في روبي

يُقسِّم التابع split السلسلة النصية التي استدعي معها إلى سلاسل نصية فرعية اعتمادًا على فاصل محدَّد ثم يعيد تلك السلاسل الفرعية في مصفوفة. البنية العامة scan(pattern) → array scan(pattern) {|match, ...| block } → str المعاملات pattern إن كان هذا المعامل سلسلة نصية، فستُسعمَل هذه السلسلة على أنَّها الفاصل الذي يفصل أجزاء السلسلة النصية المعطاة عن بعضها بعضًا. أمَّا إن كان هذا المعامل فراغًا واحدًا، فستُقسَّم السلسلة النصية المعطاة عند كل فراغ موجود بين كلماتها؛ وعند وجود أكثر من فراغ واحد، ...

التابع gsub‎ الخاص بالصنف Kernel في روبي

يكافئ التابع gsub التعبير ‎$_.gsub...‎، باستثناء أنه سيتم تحديث ‎$_‎ في حال حدوث استبدال. متوفر فقط عند تحديد خيار سطر الأوامر ‎-p/-n. البنية العامة gsub(pattern, replacement) → $_ gsub(pattern) {|...| block } → $_‎ القيمة المعادة يعاد ناتج استدعاء التعبير ‎$_.gsub...‎. انظر أيضا التابع gets: يعيد السطر التالي من قائمة الملفات في ARGV (أو ‎$‎‎*‎)، أو من مجرى الإدخال القياسي في حالة عدم تمرير أي ملفات في سطر الأوامر. مصادر قسم التابع gsub‎ في الصنف Kernel‎ في توثيق روبي الرسمي.

الكائن المؤجل (Deferred Object)

قُدِّم الكائن المؤجل في الإصدار jQuery 1.5، وهو كائن أداة قابل للتسلسل ينشأ عن طريق استدعاء التابع jQuery.Deferred()‎‎‎. ويمكنه تسجيل عدة دوال رد اتصال في صفوف رد الاتصال، واستدعاء هذه الصفوف، ونقل حالة النجاح أو الفشل لأي دالة متزامنة أو غير متزامنة. يكون الكائن المؤجل قابلاً للتسلسل، مماثلاً للطريقة التي يكون فيها كائن jQuery قابلاً للتسلسل، ولكن له توابعه الخاصة. بعد إنشاء كائن مؤجل، يمكنك استخدام أي من التوابع المذكورة أدناه إما بالتسلسل مباشرة من إنشاء الكائن، أو حفظ الكائن ...

كائنات UserString في بايثون

يعدّ UserString صنفًا يغلّف السلاسل النصية في بايثون، ولكن الحاجة إلى هذا الصنف أصبحت محدودة نظرًا لإمكانية التفريع المباشر من الصنف str، ولكن التعامل مع هذا الصنف أسهل بسبب إمكانية الوصول إلى السلسلة النصية الضمنية كخاصية. البنية العامة class collections.UserString(seq) يحاكي هذا الصنف السلاسل النصية العادية في بايثون، ويجري الاحتفاظ بمحتويات النسخة في سلسلة نصية عادية يمكن الوصول إليها عن طريق خصائص نسخ الصنف UserString. تُسند محتويات النسخة بادئ الأمر إلى نسخة من المعامل seq. يمكن أن يكون المعامل seq ...

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

(PHP 4, PHP 5, PHP 7) تبحث الدالة preg_replace()‎‎‎ عن تعبير نمطي وتستبدله. الوصف mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) تبحث هذه الدالة في الهدف subject عن النمط المطابق pattern وتبدله إلى replacement. المعاملات pattern النمط المراد البحث عنه. ويمكن أن يكون إما سلسلةً نصيةً أو مصفوفةً من السلاسل النصية. وتتوافر أيضًا العديد من مُعدِّلات PCRE. replacement السلسلة النصية البديلة أو مصفوفة السلاسل النصية البديلة. إذا ...

التابع Enumerable.slice_after في روبي

يقطِّع التابع slice_after عناصر الكائن القابل للتعداد إلى أجزاء تحدَّد نهايتها عبر نمطٍ محدِّدٍ أو كتلةٍ معطاةٍ ثم يعيد مُعدِّد لكل جزء من الأجزاء الناتجة. البنية العامة slice_after(pattern) → an_enumerator slice_after { |elt| bool } → an_enumerator إن كان النمط مطابقًا للعنصر (أي يعيد pattern === elt القيمة true) أو أعادت الكتلة القيمة true للعنصر المُمرَّر إليها، فسيُعدُّ العنصر نهايةً لجزء. يُستدعَى المعامل === والكتلة block من أول عنصر وحتى آخر عنصر من عناصر الكائن القابل للتعداد المعطى. يُنتِج المُعدِّد المعاد العناصر ...

Python/pathlib/PurePath/match

 التابع PurePath.match يختبر هذا التابع مطابقة المسار لنمط اختبار المطابقة glob المعطى. البنية العامة تبدأ المطابقة من اليمين، ويمكن أن يكون النمط المعطى نسبيًّا وعندها بُمكن أن يكون المسار نسبيًّا أو مُطلقًا >>> PurePath('a/b.py').match('*.py') True >>> PurePath('/a/b/c.py').match('b/*.py') True >>> PurePath('/a/b/c.py').match('a/*.py') False أما إذا كان النمط مُطلقًا، فلا بد أن يكون المسار مُطلقًا أيضًا وأن يتطابق كامل المسار مع النمط >>> PurePath('/a.py').match('/*.py') True >>> PurePath('a/b.py').match('/*.py') False كما أن نكهة الصنف الخاصة بويندوز لا تهتم بحالة الحروف، على عكس النكهة الخاصة بباقي الأنظمة. >>> PureWindowsPath('b.py').match('*.PY') True >>> PurePosixPath('b.py').match('*.PY') False المعاملات الوسيط pattern هو النمط المطلوب مطابقته مع ...

التابع FileTest.any?‎ في روبي

يُمرِّر التابع any?‎ كل عنصر من عناصر المجموعة التي استدعيت معه إلى الكتلة المعطاة ثمَّ يتحقق من عدم إعادة هذه الكتلة القيمة false أو nil مع أي عنصر من تلك العناصر. إن لم تعطَ أية كتلة، فستُضيف روبي الكتلة { ‎|obj| obj } والتي تدفع التابع لإعادة القيمة true عندما لا تكون قيمة أحد عناصر المجموعة هي false أو nil. إن مُرِّر نمط إلى التابع any?‎ بدلًا من الكتلة، فسيتحقق من تطابق هذا النمط مع أحد عناصر المجموعة المعطاة. البنية العامة any? [{ ...

الصنف Dir في روبي

كائنات الصنف Dir هي مجاري مجلدات (directory streams) تمثِّل الجلدات في نظام الملفات الأساسي لنظام التشغيل. فهي توفر طرائق متعددة لعرض المجلدات ومحتوياتها. انظر أيضًا صفحة الصنف File لمزيد من المعلومات. يحوي المجلد المستخدم في الأمثلة الموجودة في صفحات التوابع ملفين عاديين هما: config.h و main.rb، بالإضافة إلى المجلد الأب (..) ، والمجلد نفسه (.). توابع الصنف العامة (Public Class Methods) المعامل [] يكافئ استدعاء Dir.glob([string,...], 0)‎.  chdir‎ يغيِّر مجلد العمل (working directory) الحالي للعملية الحالية إلى مجلَّدٍ محدَّدٍ. children ...

الصنف ‎‎Regex‎ في Kotlin

يمثل الصنف Regex تعبيرًا نمطيا قابلًا للتعديل (immutable regular expression). إن أردت الاطلاع على المزيد من المعلومات المتعلقة بصياغة النمط (pattern)، انتقل إلى صفحة الصنف Pattern. actual class Regex : Serializable الدوال البانية <init> تنشئ الدالة Regex()‎ تعبيرًا نمطيًا (regular expression) انطلاقًا من السلسلة النصية المُمرّرة إليه. الخاصيات options تمثل هذه الخاصية مجموعةَ الخيارات التي استُخدمت في إنشاء التعبير النمطي الذي استُدعي معها. pattern تمثل هذه الخاصية النمط الأولي الذي استُخدم في إنشاء التعبير النمطي الذي استُدعي معها. الدوال containsMatchIn ...

الصنف ‎‎Regex‎ في Kotlin

يمثل الصنف Regex تعبيرًا نمطيا قابلًا للتعديل (immutable regular expression). إن أردت الاطلاع على المزيد من المعلومات المتعلقة بصياغة النمط (pattern)، انتقل إلى صفحة الصنف Pattern. actual class Regex : Serializable الدوال البانية <init> تنشئ الدالة Regex()‎ تعبيرًا نمطيًا (regular expression) انطلاقًا من السلسلة النصية المُمرّرة إليه. الخاصيات options تمثل هذه الخاصية مجموعةَ الخيارات التي استُخدمت في إنشاء التعبير النمطي الذي استُدعي معها. pattern تمثل هذه الخاصية النمط الأولي الذي استُخدم في إنشاء التعبير النمطي الذي استُدعي معها. الدوال containsMatchIn ...

الدالة Regex_1 في Kotlin

أصبحت الدالة Regex_1 مهملة، إذ كانت متوافرة من أجل التوافقية الثنائية (binary compatibility). تنشئ هذه الدالة تعبيرًا نمطيًا (regular expression) انطلاقًا من السلسلة النصية المُمرّرة مع استعمال الخيارات الافتراضية. البنية العامة fun Regex_1(pattern: String): Regex (source) المعاملات pattern سلسلة نصية تمثل النمط الذي سينشأ منه تعبير نمطي. القيم المعادة يعاد كائن من النوع Regex يحتوي على التعبير النمطي pattern بعد ضبطه وفقًا للقيمة الافتراضية للخيارات. انظر أيضًا الدالة Regex()‎: تنشئ تعبيرًا نمطيًا (regular expression) انطلاقًا من السلسلة النصية المُمرّرة إليه. الدالة findAll()‎: تبحث عن جميع المحارف المتطابقة مع التعبير النمطي الذي استُدعي معها في سلسلة المحارف الممرَّرة ...

الدالة re.compile()‎ في بايثون

تصرّف الدالة التعبير النمطي إلى كائن تعبير نمطي regex يمكن استخدامه للمطابقة بواسطة توابعه الخاصّة match()‎ و search()‎ وغيرها. البنية العامة re.compile(pattern, flag=0) المعاملات pattern التعبير النمطي المراد تصريفه. flags يمكن تحديد طريقة التعامل مع التعبير النمطي باستخدام قيم الرايات، ويمكن استخدام أكثر من راية وذلك بفصلها بعامل OR الخاص بالأعداد الثنائية (العامل |). يمكن استخدام المتغيرات التالية كقيم للمعامل flags: re.A re.ASCII يؤدي استخدام هذه الراية إلى جعل عملية المطابقة الخاصة بالتسلسلات ‎\w ،\W ،\b ،\B ،\d ،\D ،\s ...

الدالة Regex_0 في Kotlin

أصبحت الدالة Regex_0 مهملة، إذ كانت متوافرة من أجل التوافقية الثنائية (binary compatibility). تنشئ هذه الدالة تعبيرًا نمطيًا (regular expression) انطلاقًا من السلسلة النصية والخيارات المُمرّرة إليها. البنية العامة fun Regex_0(pattern: String, option: RegexOption): Regex منصة التشغيل المطلوبة: JS. المعاملات pattern سلسلة نصية تمثل النمط الذي سينشأ منه تعبير نمطي. option كائن من النوع RegexOption يحوي خيارًا واحدًا من خيارات التعابير النمطية. القيم المعادة يعاد كائن من النوع Regex يحتوي على التعبير النمطي pattern بعد ضبطه وفقًا للخيار option. انظر أيضًا الدالة Regex()‎: تنشئ تعبيرًا نمطيًا (regular expression) انطلاقًا من السلسلة النصية المُمرّرة إليه. الدالة containsMatchIn()‎: تتحقق ...

إضافة العولمة في كوردوفا

تمكّن إضافة العولمة (cordova-plugin-globalization) من الحصول على معلومات حول الإعدادات المحلية واللغوية والزمنية للمستخدم. لاحظ الفرق بين الإعدادات المحلية (locale) وبين اللغة: الإعدادات المحلية تتحكم في كيفية عرض الأرقام والتواريخ والأوقات في منطقة معيّنةٍ، بينما تحدد "اللغة" لغةَ النصوص، بصرف النظر عن الإعدادات المحلية. يستخدم المطورون في كثير من الأحيان الإعدادات المحلية لضبط كلا الإعدادين، ولكن لا يوجد سبب يمنع المستخدم من تعيين اللغة إلى "العربية"، مع تعيين الإعدادات المحلية إلى "الفرنسية"، بحيث يتم عرض النص باللغة العربية، ولكن مع ...

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

(PHP 4 >= 4.0.5, PHP 5, PHP 7) تبحث الدالة preg_replace_callback()‎‎ عن تعبير نمطي وتستبدله باستخدام دالة مُعرَّفة من المستخدم. الوصف mixed preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit= -1 [, int &$count ]] ) يتطابق سلوك هذه الوظيفة تقريبًا مع الدالة preg_replace()‎‎، باستثناء أنه يجب تحديد الدالة المُعرَّفة من المستخدم callback بدلاً من المعامل replacement. المعاملات pattern النمط المراد البحث عنه. ويمكن أن يكون إما سلسلةً نصيةً أو مصفوفةً من السلاسل النصية. callback الدالة ...

تبديل المعاملات باستدعاءات التوابع (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 ...

كائنات UserList في بايثون

يعدّ UserList صنفًا يغلّف القوائم في بايثون، ويعدّ صنفًا أساسيًا مفيدًا لإنشاء أصناف شبيهة بالقوائم خاصّة بالمستخدم، والتي يمكن الوراثة منها وإعادة تعريف توابعها وإضافة توابع أخرى جديدة، وهكذا يمكن إضافة عمليات جديدة على القوائم. أصبحت الحاجة إلى هذا الصنف محدودة نظرًا لإمكانية التفريع المباشر من القوائم في بايثون، لكن التعامل مع هذا الصنف أسهل بسبب كون إمكانية الوصول إلى القائمة الضمنية كخاصية. البنية العامة class collections.UserList([list]) يحاكي هذا الصنف القوائم العادية في بايثون، ويجري الاحتفاظ بمحتويات النسخة في قائمة ...

تبديل رموز الأنواع بالحالة/الاستراتيجية (Replace Type Code with State/Strategy)

ما هو رمز النوع؟ يحدث رمز النوع عندما يوجد مجموعة من الأرقام أو السلاسل النصية التي تشكل قائمة بالقيم المسموح بها لبعض العناصر بدلًا من استخدام نوع بيانات منفصل. وغالبًا ما تُعطَى هذه الأرقام والسلاسل المحددة أسماءً مفهومة عن طريق الثوابت، وهو السبب في استخدام هذه الرموز بشكل كبير. المشكلة يؤثر نوع مُرمَّز على سلوك البرنامج ولكن لا يمكن استخدام الأصناف الفرعية للتخلص منه. الحل استبدال رمز النوع بكائن حالة. إذا كان من الضروري استبدال قيمة حقل برمز النوع، فسيكون ...

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