نتائج البحث

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

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

(PHP 4, PHP 5, PHP 7) تبدِّل الدالة str_replace()‎ كل حالات وقوع سلسلة البحث إلى سلسلة الاستبدال. الوصف mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) تعيد الدالة str_replace()‎ سلسلة أو مصفوفة مع تبديل كل حالات وقوع المعامل search في المعامل subject إلى قيمة المعامل replace المعطاة. إذا كنت لا تحتاج إلى قواعد استبدال معقدة (باستعمال التعابير النمطية) يجب عليك دائمًا استخدام هذه الدالة بدلاً من الدالة preg_replace()‎. المعاملات إذا كان المعامل search ...

وحدة المراقب (Inspector) في Node.js

مؤشر الاستقرار: 1 - تجريبي توفر وحدة المراقب inspector واجهة تطبيقات API للتفاعل مع المراقب V8. ويمكن الوصول إليه باستخدام: const inspector = require('inspector'); inspector.open([port[, host[, wait]]])‎ port من النوع <number>: منفذ الاستماع لاتصالات المراقب. اختياري. القيمة الافتراضية: ما تحدد في واجهة سطر الأوامر CLI. host من النوع <string>: المضيف الذي يجب الاستماع له لإجراء اتصالات المراقب. اختياري. القيمة الافتراضية: ما تحدد في واجهة سطر الأوامر CLI. wait من النوع <boolean>: المنع حتى إتمام اتصال عميل. اختياري. القيمة الافتراضية: false. ...

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

تفرغ هذه الدالة الذاكرة المخبئية cache الخاصة بالتعبير النظامي. البنية العامة re.purge() القيمة المعادة لا تعيد هذه الدالة أي قيمة. يمكن الوصول إلى الذاكرة المخبئية الخاصّة بالتعابير النظامية عن طريق المتغيّر الخاص ‎_cache وهو عبارة عن قاموس يجمع التعابير النمطية المستخدمة سابقًا. أمثلة يبين المثال التالي طريقة استخدام هذه الدالة: >>> p = re.compile(r'(?P<word>\b\w+\b)', re.IGNORECASE) >>> re._cache {(<class 'str'>, '[ ]*', 0): (re.compile('[ ]*'), None), (<class 'str'>, '^(\\s* def\\s)|(\\s*async\\s+def\\s)|(.*(?<!\\w)lambda(:|\\s))|^(\\s*@)', 0): (re.compi le('^(\\s*def\\s)|(\\s*async\\s+def\\s)|(.*(?<!\\w)lambda(:|\\s))|^(\\s*@)'), No ne), (<class 'str'>, '[ \\f\\t]*((\\\\\\r?\\n|\\Z|#[^\\r\\n]*|((|Br|f|U|r|Fr|F|R |rb|br|Rb|Rf|FR|rB|RF|rF|fR|b|bR|RB|B|BR|u|rf|fr)\'\'\'|(|Br|f|U|r|Fr|F|R|rb|br| Rb|Rf|FR|rB|RF|rF|fR|b|bR|RB|B|BR|u|rf|fr)"""))|(([0-9](?:_?[0-9])*[jJ]|(([0-9]( ?:_?[0-9])*\\.(?:[0-9](?:_?[0-9])*)?|\\.[0-9](?:_?[0-9])*)([eE][-+]?[0-9](?:_?[0 -9])*)?|[0-9](?:_?[0-9])*[eE][-+]?[0-9](?:_?[0-9])*)[jJ])|(([0-9](?:_?[0-9])*\\. (?:[0-9](?:_?[0-9])*)?|\\.[0-9](?:_?[0-9])*)([eE][-+]?[0-9](?:_?[0-9])*)?|[0-9]( ?:_?[0-9])*[eE][-+]?[0-9](?:_?[0-9])*)|(0[xX](?:_?[0-9a-fA-F])+|0[bB](?:_?[01])+ |0[oO](?:_?[0-7])+|(?:0(?:_?0)*|[1-9](?:_?[0-9])*)))|((\\*\\*=?|>>=?|<<=?|!=|//= ?|->|[+\\-*/%&@|^=<>]=?|~)|[][(){}]|(\\r?\\n|\\.\\.\\.|[:;.,@]))|((|Br|f|U|r|Fr| F|R|rb|br|Rb|Rf|FR|rB|RF|rF|fR|b|bR|RB|B|BR|u|rf|fr)\'[^\\n\'\\\\]*(?:\\\\.[^\\n \'\\\\]*)*(\'|\\\\\\r?\\n)|(|Br|f|U|r|Fr|F|R|rb|br|Rb|Rf|FR|rB|RF|rF|fR|b|bR|RB| B|BR|u|rf|fr)"[^\\n"\\\\]*(?:\\\\.[^\\n"\\\\]*)*("|\\\\\\r?\\n))|\\w+)', <RegexF lag.UNICODE: 32>): (re.compile('[ \\f\\t]*((\\\\\\r?\\n|\\Z|#[^\\r\\n]*|((|Br|f| U|r|Fr|F|R|rb|br|Rb|Rf|FR|rB|RF|rF|fR|b|bR|RB|B|BR|u|rf|fr)\'\'\'|(|Br|f|U|r|Fr| F|R|rb|br|Rb|Rf|FR|rB|RF|rF|fR|b|bR|RB|B|BR|u|rf|fr)"""))|(([0-9](?:_?[), None), (<class 'str'>, ...

const في JavaScript

الثوابت (constants) تكون تابعةً للمجال الكتلي (block scope) بما يُشبه المتغيرات المُعرَّفة عبر التعبير let، لكن قيمة الثوابت لا يمكن أن تتغير عبر إعادة إسناد القيمة، ولا يمكن إعادة تصريحها. البنية العامة const name1 = value1 [, name2 = value2 [, ... [, nameN = valueN]]]; nameN اسم الثابت، ويمكن أن يكون أيّ معرِّف صالح في JavaScript. valueN قيمة الثابت، ويمكن استخدام أيّ تعبير (expression) صالح في JavaScript بما في ذلك الدوال. الوصف تكون الثوابت إما عامةً أو محليةً وتابعةً ...

استخدام البُنية case

حالات مُبسطة قد يكون من السهل اللجوء إلى استخدام عبارات if لبداهة أسلوبها، لكن تلك السهولة تنقلب إلى حيرة حين تواجه بضعة اختيارات مختلفة لإجراءات محتملة يجب اتخاذها، ولمثل تلك الحالات نستخدم عبارة case، وبنيتها اللغوية هي كما يلي: case EXPRESSION in CASE1) COMMAND-LIST;; CASE2) COMMAND-LIST;; ... CASEN) COMMAND-LIST;; esac وتطابق كل حالة في التعبير السابق نمطًا (pattern)، وتُنفَّذ الأوامر التي في قائمة COMMAND-LIST لأول تطابق، ويُستخدم محرف الأنبوب | لفصل الأنماط المتعددة، وينهي معامِل ( قائمة الأنماط، ويُطلق اسم البند ...

استخدام لغة Kotlin في تطوير تطبيقات الخادم (Server)

تُعدّ لغة Kotlin أداةً قويةً في تطوير تطبيقات الخادم (server)؛ إذ تكون الشيفرات فيها دقيقةً ومعبِّرة، وتمتاز بالتوافقيّة التامّة مع لغة Java ومن السهل تعلُّمها بسرعة. ميزات استخدام لغة Kotlin لتطوير تطبيقات الخادم (Server) القدرة على التعبير (Expressiveness): تساعد مميّزات لغة Kotlin المبتكرَة (مثل دعمها للمنشِئ الحافظ للنوع (type-safe builder) والخاصّيات المُعمّمة (delegated properties)) على إنشاء البنى التجريديّة (abstraction) سهلةِ الاستخدام. قابلية التوسّع (Scalability): تدعم لغة Kotlin ميّزة الروتينات المساعدة (coroutines)، وهي بهذا تتيح -في تطبيقات الخادم- إمكانيّة التوسّع لعددٍ ...

Function.name

الخاصية Function.name تُعيد اسم الدالة. سمات الخاصية Function.name قابلة للكتابة لا قابلة للإحصاء لا قابلة للضبط نعم لاحظ أنَّ المتصفحات التي كانت تدعم هذه الخاصية قبل أن تصبح معياريةً (في ECMAScript 2015) كانت تضبط السمة configurable إلى false (أي أنَّ هذه الخاصية غير قابلة للضبط). أمثلة اسم دالة مُصرَّح عنها الخاصية name تُعيد اسم الدالة المستخدم في تعبير التصريح عن الدوال: function doSomething() {} doSomething.name; // "doSomething" اسم دالة مُعرَّفة عبر الدالة البانية Function الدوال المُنشَأة عبر البنية new Function(...)‎ أو ...

هوس الحقول الأساسية (Primitive Obsession)

توصيف المشكلة تظهر المشكلة بعدَّة جوانب: استخدام الحقول الأساسيّة (primitives) بدلًا من الكائنات (objects) لأداء المهامّ البسيطة (مثل: عمليات العملة [currency] والمجالات [ranges] والسلاسل النصية [strings] المُخصَّصة للأرقام الهاتفية، …إلخ.). استخدام الثوابت (constants) لترميز المعلومات (مثل استخدام الثابت USER_ADMIN_ROLE = 1 للدلالة على المستخدمين ذوي الصلاحيّات الإداريّة). استخدام الثوابت النصيّة (string constants) كأسماءٍ للحقول (fields) في مصفوفات البيانات (data arrays). أسبابها تنشأ هذه المشكلة بسبب العبارة المُدمِّرة التي يفكّر بها المبرمجون بلحظة ضعفٍ: "حقلٌ واحدٌ فقط، ولتخزين معلومةٍ بسيطةٍ وحسب!"ولأنهم ...

استبدال الخوارزمية (Substitute Algorithm)

المشكلة الحاجة إلى استبدال خوارزميّة ما بخوارزميّة أخرى. الحل تعديل محتوى التابع (method body) الذي يُنفِّذ الخوارزمية السابقة ليُنفِّذ الخوارزمية الجديدة. مثال قبل إعادة التصميم تتلخَّص مهمة التابع foundPerson بالبحث عن الأشخاص ذوي الأسماء "Don" أو "John" أو "Kent" وذلك بالمرور بعناصر المصفوفة النصّيّة people باستخدام حلقة for كما في الشيفرة: في لغة Java: String foundPerson(String[] people){ for (int i = 0; i < people.length; i++) { if (people[i].equals("Don")){ return "Don"; ...

التعليقات (Comments)

توصيف المشكلة وجود الكثير من التعليقات في التوابع (methods) بهدف الشرح التفصيليّ للشيفرة. أسبابها غالبًا ما يكون السبب منطقيًّا لإضافة التعليقات وخاصّة عندما تكون الشيفرة مبهمةً غير واضحة، لكن بهذه الحالة لن نعدَّ تلك التعليقات إلا محاولاتٍ بائسةً لتغطية الشيفرة الرديئة بجانبها! ولتكن القاعدة: إنّ أفضل تعليقٍ يمكن أن تضيفه هو تسمية التوابع (methods) والأصناف (classes) تسميةً جيّدةً معبِّرة. وإذا ما وجدتَ أن الشيفرة لن تكون واضحةً بحذف التعليقات المُضافة، فمن المُؤسف القول بضرورة تغيير بُنيتها (structure) إلى الشكل الذي ...

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