نتائج البحث

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

تعريف التوابع الدخيلة (Introduce Foreign Methods)

المشكلة الحاجة إلى تابعٍ غير موجودٍ في الصنف المساعد (utility class) ومن غير الممكن إضافته إلى ذلك الصنف. الحل إضافة التابع المطلوب إلى صنف العميل (client class) وتمرير كائنٍ (object) من الصنف المساعد إليه كوسيط (argument). مثال قبل إعادة التصميم يحتوي الصنف Report تابعًا باسم sendReport والذي يستخدم الصنف المساعد Date لإنشاء تاريخ اليوم التالي عبر إضافة القيمة 1 إلى اليوم الحالي، كما يلي: في لغة Java: class Report { //... void sendReport() { Date ...

اختبارات المتصفح (Laravel Dusk) في Laravel

مقدمة يوفّر لك Laravel Dusk أتمتة للمتصفّح واختبار للواجهات البرمجيّة بطريقة سهلة الاستخدام. بشكلٍ افتراضي، لا يتطلّب Dusk تنصيب JDK أو Selenium على جهازك، حيث يستعمل تثبيت مستقل (standalone) لبرمجية ChromeDriver. بأي حال، يمكنك استخدام أي برنامج تشغيل متوافق مع Selenium إذا أردت. التثبيت للبدء، أضف الاعتمادية laravel/dusk إلى مشروعك: composer require --dev laravel/dusk بعد تثبيت Dusk، سجّل مزوّد الخدمة الذي يتبع إلى Dusk، وهو Laravel\Dusk\DuskServiceProvider. بشكل عام، يكون هذا تلقائيًّا باستخدام التسجيل التلقائي لمزوّدات خدمة Laravel. تنبيه: إذا قمت بتسجيل ...

التابع Serial.print()‎ في أردوينو

يطبع التابع print()‎ البيانات المُمرَّرة إليه على منفذ الاتصال التسلسلي بترميز ASCII (أي يطبع نصًّا يستطيع الآخرون قراءته). تُطبَع الأعداد باستعمال الترميز ASCII لكل رقم، وتُطبَع الأعداد العشرية بشكل مشابه بترميز ASCII وبدقة عددين بعد الفاصلة افتراضيًّا. تُرسَل البايتات فرادى، كل محرف على حدة، وتُرسَل المحارف والسلاسل النصية كما هي. Serial.print(78) // "يعطي القيمة "78 Serial.print(1.23456)‎ // "يعطي القيمة "1.23 Serial.print('N')‎ ...

التابع array.remove()‎ في بايثون

يحذف التابع أول ظهور للقيمة المعطاة من المصفوفة. البنية العامة ‎array.remove(x) المعاملات x القيمة المراد حذفها من المصفوفة. القيمة المعادة يعيد التابع القيمة None. أمثلة يبين المثال التالي آلية عمل التابع: >>> import array >>> a1 = array.array('l', [1, 2, 3, 4, 5]) >>> a1.remove(3) انظر أيضًا التابع array.append()‎: يضيف التابع عنصرًا جديدًا يحمل القيمة المعطاة إلى نهاية المصفوفة. التابع array.extend()‎: يلحق التابع عناصر كائن التكرار المعطى إلى نهاية المصفوفة. التابع array.insert()‎: يدرج التابع عنصرًا جديدًا يحمل القيمة المعطاة في المصفوفة قبل ...

الدالة get()‎ في Kotlin

تجلب الدالة get()‎ مجموعةً (group) ذات فهرس محدد. البنية العامة abstract operator fun get(index: Int): MatchGroup? وجود الكلمة المفتاحيّة operator يدل على أنّ هذا التابع مرتبطٌ بمعامل تكرار (iteration operator). المعاملات index عدد صحيح يمثل فهرس المجموعة المراد جلبها. تفهرس المجموعات بدءًا من العدد 1 وحتى عدد المجموعات في التعبير النمطي؛ المجموعة ذات الفهرس 0 تقابل المطابقة الكلية. القيمة المعادة يعاد كائنٌ من النوع MatchGroup إن كانت المجموعة ذات الفهرس index متطابقة، أو تعاد القيمة null خلاف ذلك. انظر أيضًا الدالة MatchGroup()‎: ...

التابع TarFile.getmember()‎‎ في بايثون

يعيد التابع كائن TarInfo لعضو ملف الأرشيف المعطى. البنية العامة TarFile.getmember(name) المعاملات name اسم العضو في ملف الأرشيف. القيمة المعادة يعيد التابع كائن TarInfo لعضو ملف الأرشيف المعطى، إن لم يتمكن التابع من العثور على الاسم المعطى في ملف الأرشيف، فإنّه يُطلق الاستثناء KeyError. ملاحظة: في حال تكرار عضو من أعضاء الأرشيف لأكثر من مرة، فإنّ الظهور الأخير لهذا العضو سيُعدّ النسخة الأحدث منه. أمثلة يبين المثال التالي آلية عمل التابع: >>> import tarfile >>> tar = tarfile.open(files.tar) >>> tar = tarfile.open('files.tar') >>> ...

التابع Counter.elements()‎ في بايثون

يعيد هذا التابع كائنًا مكرِّرًا يتضمّن عناصر تتكرّر فيه حسب قيمة التعداد في كائن التعداد. البنية العامة c.‎elements() القيمة المعادة يعيد هذا التابع كائنًا مكرِّرًا يتضمّن عناصر تتكرّر فيه حسب قيمة التعداد في كائن التعداد، وتعاد العناصر في الكائن المكرّر دون ترتيب معيّن، ويتجاهل التابع أي عنصر يكون تعداده أقلّ من واحد. أمثلة يبين المثال التالي آلية عمل التابع: >>> c = Counter(a=4, b=2, c=0, d=-2) >>> sorted(c.elements()) ['a', 'a', 'a', 'a', 'b', 'b'] انظر أيضًا التابع most_common()‎:  :يعيد التابع قائمة بالعناصر ...

الدالة Float.unaryPlus()‎ في Kotlin

تعيد الدالة unaryPlus()‎ العدد العشري (float) الذي استُدعي معها. البنية العامة operator fun unaryPlus(): Float وجود الكلمة المفتاحيّة operator يدل على أنّ هذه الدالة مرتبطٌة بمعامل تكرار (iteration operator). القيمة المعادة يعاد العدد نفسه المعطى. أمثلة استعمال الدالة ()unaryPlus لإعادة القيمة المستدعاة معها: fun main(args: Array<String>) { val x: Float = 52.54f println(x.unaryPlus()) // 52.54 } انظر أيضًا الدالة unaryMinus()‎: تعيد القيمة السالبة المقابلة للعدد العشري (float) الذي استُدعي معها. الدالة inc()‎ : تزيد العدد العشري (float) الذي استُدعي معها ...

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

يعد الصنف Any الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ في Kotlin؛ أي أنّ كلَّ صنفٍ سيكون له الصنف الأعلى (superclass)‏ Any. open class Any الدوال البانية <int> يعيد التابع Any()‎ نسخةً من الصنف Any الذي هو الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ أثناء البرمجة في Kotlin؛ أي أنّ كلَّ صنفٍ سيكون له الصنف الأعلى (superclass)‏ Any. الدوال equals تتحقق الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت معها. hashCode تعيد الدالة hashCode()‎ قيمة الشيفرة hash code الخاصّة بالكائن الذي ...

array_merge()‎

(PHP 4, PHP 5, PHP 7) تدمج الدالة array_merge()‎ مصفوفتين أو أكثر. الوصف array array_merge ( array $array1 [, array $... ] ) تدمج الدالة عناصر مصفوفة أو أكثر بحيث تضيف عناصر المصفوفة إلى عناصر المصفوفة السابقة لها. تعيد الدالة المصفوفة الناتجة والمحتوية على عناصر كل المصفوفات. إذا احتوت المصفوفة على مفاتيح متماثلة في التمثيل النصي، فستضيف الدالة العناصر المرتبطة بالمفاتيح التالية لتأخذ مكان القيم السابقة المسجلة مع المفتاح. إذا احتوت المصفوفة على نفس المفتاح العددي فإن قيمة العنصر المرتبط به ...

array_merge()‎

(PHP 4, PHP 5, PHP 7) تدمج الدالة array_merge()‎ مصفوفتين أو أكثر. الوصف array array_merge ( array $array1 [, array $... ] ) تدمج الدالة عناصر مصفوفة أو أكثر بحيث تضيف عناصر المصفوفة إلى عناصر المصفوفة السابقة لها. تعيد الدالة المصفوفة الناتجة والمحتوية على عناصر كل المصفوفات. إذا احتوت المصفوفة على مفاتيح متماثلة في التمثيل النصي، فستضيف الدالة العناصر المرتبطة بالمفاتيح التالية لتأخذ مكان القيم السابقة المسجلة مع المفتاح. إذا احتوت المصفوفة على نفس المفتاح العددي فإن قيمة العنصر المرتبط به ...

المعامل

يجمع المعامل | عناصر مصفوفتين في مصفوفة واحدة جديدة مع استثناء العناصر المتكررة والحفاظ على ترتيب العناصر وفقًا للمصفوفة الأولى المعطاة. يوازن المعامل | القيم باستخدام hash و eql?‎ للحصول على أعلى كفاءة. البنية العامة ary | other_ary → new_ary القيم المعادة تعاد مصفوفة جديدة تحوي جميع عناصر المصفوفة ary والمصفوفة other_ary مع حذف العناصر المتكررة. أمثلة مثال عن استخدام المعامل |: [ "a", "b", "c" ] | [ "c", "d", "a" ] #=> [ "a", "b", ...

التابع array.append()‎ في بايثون

يضيف التابع عنصرًا جديدًا يحمل القيمة المعطاة إلى نهاية المصفوفة. البنية العامة ‎array.append(x) المعاملات x العنصر المراد إضافته إلى نهاية المصفوفة. القيمة المعادة يعيد التابع القيمة None. أمثلة يبين المثال التالي آلية عمل التابع: >>> import array >>> a = array.array('l', [1, 3, 5, 7, 9]) >>> a array('l', [1, 3, 5, 7, 9]) >>> a.append(11) >>> a array('l', [1, 3, 5, 7, 9, 11]) انظر أيضًا التابع array.extend()‎: يلحق التابع عناصر كائن التكرار المعطى إلى نهاية المصفوفة. التابع array.insert()‎: يدرج التابع عنصرًا جديدًا يحمل القيمة ...

التابع Integer.downto‎ في روبي

يكرر التابع downto‎ تنفيذ الكتلة البرمجية المعطاة مع تمرير الأعداد تنازليًا بداية من العدد الذي استُدعيت معه وحتى العدد المعطى. في حال عدم تمرير أي كتلة برمجية، فسيُعاد الكائن Enumerator. البنية العامة downto(limit) {|i| block } → self downto(limit) → an_enumerator‎ المعاملات limit‎ الحد الأدنى لعملية التكرار. القيمة المعادة في حال تمرير كتلة، فسيعاد ناتج تنفيذ هذه الكتلة مع تمرير العدد المعطى في كل مرة تنازليًّا حتى الوصول إلى العدد limit، وإلا فسيعاد الكائن Enumerator. أمثلة مثال على ...

الدالة itertools.compress()‎ في بايثون

تعيد الدّالة itertools.compress()‎ مُكرّرًا يُرشّح العناصر المتواجدة داخل الكائن القابل للتّكرار المُعطى مُعيدًا فقط تلك التي تملك عنصرًا مُحدّدًا يُساوي القيمة المنطقيّة True. ويتوقّف المُكرّر عندما تنتهي قيم البيانات المُعطاة أو قيم المُحدّدات. البنية العامة itertools.compress(data, selectors) المعاملات data البيانات التي ستُرشّح. selectors المُحدّدات التي تُحدّد ما إذا كانت البيانات ستنضم إلى المُكرّر المُعاد أو لا. القيمة المعادة مُكرّر يحتوي على عناصر الكائن data التي تُساوي مُحدّداتها القيمة المنطقيّة True. أمثلة المثال التّالي يوضّح كيفيّة عمل هذه الدّالة: >>> data ...

الدالة Float.unaryMinus()‎ في Kotlin

تعيد الدالةunaryMinus()‎ القيمة السالبة المقابلة للعدد العشري (float) الذي استُدعي معها. البنية العامة operator fun unaryMinus(): Float وجود الكلمة المفتاحيّة operator يدل على أنّ هذه الدالة مرتبطٌة بمعامل تكرار (iteration operator). القيمة المعادة يعاد عدد عشري يمثل القيمة السالبة للعدد العشري المعطى. أمثلة استعمال الدالة ()unaryMinus لإعادة القيمة السالبة لعددٍ عشريٍّ موجب وآخر سالب: fun main(args: Array<String>) { val x: Float = 52.5f val y = x.unaryMinus() println(y) // ...

الدالة Comparable.compareTo()‎ في Kotlin

توازن الدالة compareTo()‎ بين الكائن الذي استُدعي معها والكائن المُمرّرة إليها ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة العنصر الذي استُدعيت معه) أصغر من القيمة الثانية، أو قيمة موجبة إن كانت القيمة الأولى أكبر من القيمة الثانية. البنية العامة abstract operator fun compareTo(other: T): Int وجود الكلمة المفتاحيّة operator يدل على أنّ هذا التابع مرتبطٌ بمعامل تكرار (iteration operator). المعاملات other الكائن الآخر المراد موازنته مع الكائن المعطى. القيمة المعادة تعاد القيمة 0 إن كانت القيمة المعطاة ...

التابع Integer.upto‎ في روبي

يكرر التابع upto‎ تنفيذ الكتلة البرمجية المعطاة مع تمرير الأعداد تصاعديًا بدايةً من العدد الذي استُدعي معه وحتى العدد المعطى. في حال عدم تمرير أي كتلة برمجية، فسيُعاد الكائن Enumerator. البنية العامة upto(limit) {|i| block } → self upto(limit) → an_enumerator‎ المعاملات limit‎ الحد الأقصى لعملية التكرار. القيمة المعادة في حال تمرير كتلة، فسيعاد ناتج تنفيذ هذه الكتلة مع تمرير العدد المعطى في كل مرة تصاعديًّا حتى الوصول إلى العدد limit، وإلا فسيعاد الكائن Enumerator. أمثلة مثال على استخدام التابع ...

الدالة Double.unaryPlus()‎ في Kotlin

تعيد الدالة unaryPlus()‎ العدد العشري المضاعف (double) الذي استُدعي معها. البنية العامة operator fun unaryPlus(): Double وجود الكلمة المفتاحيّة operator يدل على أنّ هذه الدالة مرتبطٌة بمعامل تكرار (iteration operator). القيمة المعادة يعاد العدد نفسه المعطى. أمثلة استعمال الدالة ()unaryPlus لإعادة القيمة المستدعاة معها: fun main(args: Array<String>) { val x: Double = 52.54 println(x.unaryPlus()) // 52.54 } انظر أيضًا الدالة unaryMinus()‎: تعيد القيمة السالبة المقابلة للعدد العشري المضاعف (double) الذي استُدعي معها. الدالة inc()‎ : تزيد العدد العشري المضاعف (double) ...

التابع Counter.most_common()‎ في بايثون

يعيد هذا التابع كائنًا مكرِّرًا يتضمّن عناصر تتكرّر فيه حسب قيمة التعداد في كائن التعداد. البنية العامة c.‎most_common([n]) المعاملات n إن لم يأخذ هذا المعامل أي قيمة أو أخذ القيمة None، فإنّ التابع يعيد جميع العناصر في العداد. وجدير بالذكر أنّه لا يوجد ترتيب معيّن للعناصر التي تمتلك تعدادًا متساويًا. القيمة المعادة يعيد التابع قائمة بالعناصر الأكثر تكرارًا إلى جانب عدد مرات التكرار. يمكن تحديد عدد العناصر المطلوبة عن طريق تمرير القيمة إلى المعامل n. أمثلة يبين المثال التالي آلية ...

التابع Enumerator.next في روبي

يعيد التابع next الكائن التالي في المُعدِّد الذي استدعي معه، ويحرك موضع المؤشر الداخلي للأمام خطوة واحدة. عند وصول المؤشر إلى النهاية، يُطلَق الاستثناء StopIteration. البنية العامة next → object القيمة المعادة يعاد الكائن التالي في المُعدِّد المعطى. أمثلة مثال على استعمال التابع next: a = [1,2,3] e = a.to_enum p e.next #=> 1 p e.next #=> 2 p e.next #=> 3 p e.next #=> StopIteration انتبه إلى أنَّ السلسلة التعدادية المعادة عبر next لا تؤثر على التوابع التعدادية الغير ...

التابع ConfigParser.readfp()‎‎ في بايثون

ملاحظة: هذا التابع مهمل منذ الإصدار 3.2 من بايثون، استخدم التابع read_file()‎ عوضًا عنه. ملاحظة: يمرّ التابع readfp()‎ على عناصر fp عوضًا عن استدعاء التابع fp.readline()‎. البنية العامة readfp(fp, filename=None) إن تضمنت الشيفرة استدعاءات للتابع readfp()‎ مع معاملات لا تدعم التكرار، فيمكن استخدام المولّد التالي لتغليف الكائن الشبيه بالملف: def readline_generator(fp): line = fp.readline() while line: yield line line = ...

المعامل * الخاص بالصنف Array في روبي

إن استعمل المعامل * مع مصفوفة وسلسلة نصية، فسيُكافئ حينئذٍ العبارة ary.join(str)‎. أمَّا إن استعمل مع مصفوفة وعدد، فسيُعيد مصفوفة جديدة تتكرر فيها المصفوفة تلك عددًا من المرات مساويًا لذلك العدد المعطى. البنية العامة ary * int → new_ary ary * str → new_string القيم المعادة تعاد مصفوفة أو سلسلة نصية جديدة. أمثلة مثالٌ عن استخدام المعامل * مرةً مع عدد وأخرى مع سلسلة نصية: [ 1, 2, 3 ] * 3 #=> [ 1, 2, ...

التابع Counter.most_common()‎ في بايثون

يعيد هذا التابع كائنًا مكرِّرًا يتضمّن عناصر تتكرّر فيه حسب قيمة التعداد في كائن التعداد. البنية العامة c.‎most_common([n]) المعاملات n إن لم يأخذ هذا المعامل أي قيمة أو أخذ القيمة None، فإنّ التابع يعيد جميع العناصر في العداد. وجدير بالذكر أنّه لا يوجد ترتيب معيّن للعناصر التي تمتلك تعدادًا متساويًا. القيمة المعادة يعيد التابع قائمة بالعناصر الأكثر تكرارًا إلى جانب عدد مرات التكرار. يمكن تحديد عدد العناصر المطلوبة عن طريق تمرير القيمة إلى المعامل n. أمثلة يبين المثال التالي آلية ...

أصناف المكتبة غير الكافية (Incomplete Library Classes)

توصيف المشكلة لا تلبِّي أصناف المكتبة (library classes) كافّة احتياجات البرنامج مع استمرار تطوُّره، ولا يمكن تعديلها لأنّها مُخصَّصةٌ للقراءة فقط (read-only). أسبابها عدم تزويد مُطوِّر المكتبة كافَّةَ الميّزات (features) التي تحتاجها في البرنامج أو امتناعه عن تعريفَ استخدامها (implement). وما الحل؟ لتعريف بعض التوابع (methods) في المكتبة عليك بتعريف التوابع الدخيلة (introduce foreign methods). أمّا لإجراء تغييراتٍ واسعةٍ في صنف المكتبة فعليك بتعريف الإضافات المحليّة (introduce local extensions). إليك المزيد سيكون حلُّ المشكلة كفيلًا بالتقليل من تكرار الشيفرات (duplications)، ...

الدالة shiftOut()‎ في أردوينو

تزيح الدالة shiftOut()‎ بايتًا من البيانات إلى رجل محدَّدة مقدار بتٍّ واحدٍ في كل مرة تتغير فيها حالة النبضة على رجل أخرى إلى HIGH. يمكن ترتيب عملية إزاحة البتات وكتابتها على الرجل إمَّا بدءًا من البت الأكثر أهمية (أقصى اليسار) أو من البت الأقل أهمية (أقصى اليمين). البنية العامة shiftOut(dataPin, clockPin, bitOrder, value) في كل بت، تقدح الرجل clockPin عملية كتابة البت التالي من القيمة value على الرجل dataPin عند الجبهة الصاعدة للإشارة (أي عندما تنتقل النبضة من LOW إلى HIGH) ...

معالجة الأحداث في React

تُشبه معالجة الأحداث لعناصر React معالجة الأحداث لعناصر DOM، ولكن هنالك فروق تتعلّق بالصياغة: تُسمَّى أحداث React باستخدام حالة الأحرف camelCase (أي عند وجود اسم مؤلف من عدة كلمات نجعل الحرف الأول من الكلمة الأولى بالشكل الصغير أمّا باقي الكلمات نجعل حرفها الأول بالشكل الكبير) بدلًا من استخدام الشكل الصغير للأحرف. نُمرِّر في JSX دالة كمُعالِج للأحداث، بدلًا من سلسلة نصيّة. على سبيل المثال لنأخذ شيفرة HTML التالية: <button onclick="activateLasers()"> تفعيل الليزر </button> تكون الشيفرة السابقة مختلفة قليلًا في React: <button ...

الصنف lzma.LZMACompressor في بايثون

تنشئ هذه الدالة البانية كائن compressor جديد، ويمكن استخدام هذا الكائن لضغط البيانات تزايدياً. راجع توثيق الدالة compress()‎ لضغط البيانات دفعة واحدة. البنية العامة lzma.LZMACompressor(format=FORMAT_XZ, check=-1, preset=None, filters=None) المعاملات يحدّد المعامل format نوع تنسيق الحاوية الذي يجب استخدامه، ويأخذ القيم التالية: FORMAT_XZ: تنسيق الحاوية ‎.xz هذا هو التنسيق الافتراضي. FORMAT_ALONE: تنسيق الحاوية ‎.lzma القديم. هذا التنسيق أكثر محدودية من التنسيق ‎.xz، ولا يدعم اختبارات السلامة integrity checks أو المرشحات المتعددة multiple filters. Format_RAW: تدفق بيانات خام، ولا يستخدم تنسيق حاوية. ...

الهيكلية التفرعية للوراثة (Parallel Inheritance Hierarchies)

توصيف المشكلة يتطلَّب إنشاءُ صنفٍ فرعيٍّ (subclass) لأحد الأصناف إنشاءَ صنفٍ فرعيٍّ ثانٍ لصنفٍ آخر غيره. أسبابها لا تبدو المشكلة واضحةً في الهيكليّات (hierarchies) الصغيرة، ولكنها تبدأ بالظهور مع إضافة أصناف (classes) جديدةٍ ممّا يجعل إجراء التعديلات أمرًا صعبًا. وما الحل؟ التخلُّص من التكرار التفرعيّ بين الهيكليّتين (hierarchies)، ويتمّ بخطوتين: إنشاء مرجعيّة (reference) من إحدى الهيكليّتين التفرعيّتين إلى الهيكليّة الثانية. إزالة الهيكليّة في الصنف المُشار إليه (referred class)، وذلك بنقل التوابع (move methods) ونقل الحقول (move fields). إليك المزيد ستحصل ...

التابع list.clear()‎ في بايثون

يحذف هذا التابع جميع عناصر القائمة. البنية العامة l.clear() القيمة المعادة يعيد هذا التابع القيمة None. أمثلة يبين المثال التالي كيفية استخدام هذا التابع: >>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'] >>> fruits.clear() >>> fruits [] انظر أيضًا القوائم في بايثون. التابع list.sort()‎: فرز القائمة في مكانها وذلك بإجراء مقارنة بين عناصر القائمة بواسطة العامل ‎<‎ فقط. التابع list.append()‎: إضافة عنصر إلى نهاية القائمة. التابع list.extend()‎: إضافة مجموعة من العناصر إلى نهاية القائمة. التابع list.insert()‎: إضافة عنصر إلى القائمة في الموقع ...

الصنف Enumerator::Lazy في روبي

الصنف Enumerator::Lazy هو صنف يسمح بعملية التكرار - مثل الصنف Enumerator - ولكن بالنمط الكسول (lazy fashion). توابع الصنف العامة new ينشئ كائن تعداد جديد من النوع Enumerator::Lazy. توابع النسخة العامة chunk chunk_while collect collect_concat يعيد كائن تعداد جديد من النوع Lazy مع النتائج المتسلسلة الناتجة عن تنفيذ الكتلة المعطاة مرةً واحدةً لكل عنصر من عناصر الكائن Lazy الذي استدعي معه. drop drop_while enum_for يشبه التابع Kernel.to_enum باستثناء أنه يعيد مُعدِّدًا كسولًا (كائن من النوع Enumerator::Lazy). find_all flat_map يعيد كائن ...

التابع array.pop()‎ في بايثون

يحذف التابع العنصر في الموقع المحدد من المصفوفة ويعيده. البنية العامة ‎array.pop([i]) المعاملات i موقع العنصر المراد حذفه. القيمة المعادة يعيد التابع العنصر المحذوف من الموقع المحدد في المصفوفة. أمثلة يبين المثال التالي آلية عمل التابع: >>> import array >>> a1 = array.array('l', [1, 2, 3, 4, 5]) >>> a1.pop(3) 4 >>> a1.pop(0) 1 >>> a1.pop(8) Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: pop index out of range انظر أيضًا التابع array.append()‎: يضيف التابع عنصرًا جديدًا يحمل القيمة المعطاة إلى نهاية المصفوفة. ...

الدالة Double.unaryMinus()‎ في Kotlin

تعيد الدالة unaryMinus()‎ القيمة السالبة المقابلة للعدد العشري المضاعف (double) الذي استُدعي معها. البنية العامة operator fun unaryMinus(): Double وجود الكلمة المفتاحيّة operator يدل على أنّ هذه الدالة مرتبطٌة بمعامل تكرار (iteration operator). القيمة المعادة يعاد عدد عشري مضاعف يمثل القيمة السالبة للعدد العشري المضاعف المعطى. أمثلة استعمال الدالة ()unaryMinus لإعادة قيمة سالبة لعدد عشري مضاعف موجب وآخر سالب: fun main(args: Array<String>) { val x: Double = 52.5 val y = x.unaryMinus() println(y) // ...

الدالة urllib.parse.urlunparse()‎‎ في بايثون

تبني الدالة عنوان URL من صفّ يشبه الصفّ المعاد من الدالة urlparse()‎. البنية العامة urllib.parse.urlunparse(parts) ‎المعاملات parts يمكن لهذا المعامل أن يكون أي كائن قابل للتكرار iterable يتكوّن من ستة عناصر. قد يؤدي هذا إلى الحصول على عنوان URL مختلف قليلًا ولكنّه مكافئ للعنوان الأصلي إذا كان الأخير يتضمّن فواصل غير ضرورية (مثل علامة ? مع استعلام فارغ، ينصّ معيار RFC على أنّ العنوانين متكافئان). أمثلة يبين المثال التالي طريقة عمل الدالة: >>> from urllib.parse import urlparse, urlunparse >>> url = ...

نطاق المتغيرات في PHP

النطاق (scope) هو السياق الذي تعرّف ضمنه المتغيرات، وفي معظم الحالات تمتلك جميع متغيرات PHP نطاقًا واحدًا فقط، ويمتد هذا النطاق ليشمل الملفات المضمّنة (included) والمطلوبة (required) كذلك. فمثلاً: <?php $a = 1; include 'b.inc'; ?> هنا سيكون المتغير ‎$a متوفّراً ضمن شيفرة b.inc المضمّنة، ولكن يصبح النطاق ضمن الدوال المعرّفة من طرف المستخدم نطاقًا محلّيًا (local scope)، وتكون جميع المتغيرات المستخدمة داخل الدالة محدّدة بصورة تلقائية ضمن النطاق المحلي. مثلًا: <?php // نطاق عام $a = 1; function test() { // ...

تعليمات التحكم في Sass

تدعم SassScript تعليمات وتعابير التحكم التي تُستعمل لرَهن تفعيل الأنماط بشروط معيّنةٍ أو لتضمين نفس النمط لكن مع تطبيق بعض التنويعات عليه. ملاحظة: تعليمات التحكم هي ميزة متقدمةٌ، كما أنّها غير شائعة الاستخدام. وُجدت أساسًا لتُستعمل في المخاليط (mixins)، لاسيما تلك التي هي جزءٌ من المكتبات مثل Compass، لذلك فهي تتطلب مرونةً كبيرةً في التعامل معها. if()‎ تُعيد الدالة المضمّنة if()‎ إحدى قيمتين محدَّدتين بناءً على شرط معيّن، ويمكن استخدامها في أيّ سياق برمجي. لا تتحقق الدالة if إلا من ...

نطاق المتغيرات في PHP

النطاق (scope) هو السياق الذي تعرّف ضمنه المتغيرات، وفي معظم الحالات تمتلك جميع متغيرات PHP نطاقًا واحدًا فقط، ويمتد هذا النطاق ليشمل الملفات المضمّنة (included) والمطلوبة (required) كذلك. فمثلاً: <?php $a = 1; include 'b.inc'; ?> هنا سيكون المتغير ‎$a متوفّراً ضمن شيفرة b.inc المضمّنة، ولكن يصبح النطاق ضمن الدوال المعرّفة من طرف المستخدم نطاقًا محلّيًا (local scope)، وتكون جميع المتغيرات المستخدمة داخل الدالة محدّدة بصورة تلقائية ضمن النطاق المحلي. مثلًا: <?php // نطاق عام $a = 1; function test() { // ...

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

يفك التابع unpack1 ترميز السلسلة النصية التي استدعي معها (والتي قد تحوي بيانات ثنائية) وفقًا إلى سلسلة التنسيق المعطاة، ويعيد أول قيمة مستخرجة.  البنية العامة unpack1(format) → obj المعاملات format سلسلة نصية تمثِّل سلسلة التنسيق. تتكون سلسلة التنسيق من سلسلة من الموجهات ذات المحارف الفردية (اطلع على الجدول الموجود في التابع unpack). يمكن أن يعقب كل موجِّه عددٌ يشير إلى عدد مرات تكرار هذا الموجه. سيستعمل الرمز * كل العناصر المتبقية. يمكن أن يلي كل موجه من الموجهات sSiIlL شرطة ...

التابع list.reverse()‎ في بايثون

يقلب هذا التابع ترتيب عناصر القائمة في مكانها. البنية العامة l.reverse() القيمة المعادة يعيد هذا التابع القيمة None. أمثلة يبين المثال التالي كيفية استخدام هذا التابع: >>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'] >>> fruits.reverse() >>> fruits ['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange'] انظر أيضًا القوائم في بايثون. التابع list.sort()‎: فرز القائمة في مكانها وذلك بإجراء مقارنة بين عناصر القائمة بواسطة العامل ‎<‎ فقط. التابع list.append()‎: إضافة عنصر إلى نهاية القائمة. التابع list.extend()‎: إضافة مجموعة من العناصر إلى نهاية القائمة. ...

الصنف wsgiref.util.FileWrapper()‎‎ في بايثون

صنف تغليف wrapper تحوّل كائنًا شبيهًا بالملف file-like object إلى مكرّر. تدعم الكائنات الناتجة التكرار استخدام التابعين ‎__getitem__()‎ و ‎__iter__()‎ وذلك للتوافق مع الإصدار 2.1 من بايثون ومع Jython. البنية العامة wsgiref.util.FileWrapper(filelike, blksize=8192) المعاملات ‎blksize المعامل الاختياري يُمُرّر بصورة متكررة في كلّ مرة يجري فيها المرور على الكائن، إلى التابع read()‎ في الكائن الشبيه بالملف المعطى وذلك للحصول على سلاسل بايتات نصية. إذا أعاد التابع read()‎ سلسلة بايتات نصية فارغة، تتوقّف عملية التعاود تمامًا. إن كان الكائن الشبيه بالملفات المعطى ...

الصنف wsgiref.util.FileWrapper()‎‎ في بايثون

صنف تغليف wrapper تحوّل كائنًا شبيهًا بالملف file-like object إلى مكرّر. تدعم الكائنات الناتجة التكرار استخدام التابعين ‎__getitem__()‎ و ‎__iter__()‎ وذلك للتوافق مع الإصدار 2.1 من بايثون ومع Jython. البنية العامة wsgiref.util.FileWrapper(filelike, blksize=8192) المعاملات ‎blksize المعامل الاختياري يُمُرّر بصورة متكررة في كلّ مرة يجري فيها المرور على الكائن، إلى التابع read()‎ في الكائن الشبيه بالملف المعطى وذلك للحصول على سلاسل بايتات نصية. إذا أعاد التابع read()‎ سلسلة بايتات نصية فارغة، تتوقّف عملية التعاود تمامًا. إن كان الكائن الشبيه بالملفات المعطى ...

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')] ملاحظة: احذر من ...

التابع array.insert()‎ في بايثون

يدرج التابع عنصرًا جديدًا يحمل القيمة المعطاة في المصفوفة قبل الموقع المحدد. البنية العامة ‎array.insert(i, x) المعاملات i موقع إدراج العنصر الجديد ضمن المصفوفة، ويبدأ احتساب الموقع من بداية المصفوفة، ويمكن احتساب موقع إضافة العنصر الجديد من نهاية المصفوفة وذلك بتقديم قيم سالبة. x العنصر المراد إدراجه في المصفوفة. القيمة المعادة أمثلة يبين المثال التالي آلية عمل التابع: >>> import array >>> a1 = array.array('l', [1, 3, 4, 6]) >>> a1.insert(1, 2) >>> a1 array('l', [1, 2, 3, 4, 6]) >>> a1.insert(-1, 5) >>> a1 array('l', [1, ...

الدالة ‎‎all()‎ في Kotlin

تتحقق الدالة all()‎ إن كانت كافّة عناصر المصفوفة أو المجموعة (collection) التي استُدعيت عبرها تطابق شرطًا منطقيًّا محدَّدًا. البنية العامة يمكن استدعاء الدالة all()‎ للمصفوفات من الأنواع المختلفة كما يلي: inline fun <T> Array<out T>.all(predicate: (T) -> Boolean): Boolean inline fun ByteArray.all(predicate: (Byte) -> Boolean): Boolean inline fun ShortArray.all(predicate: (Short) -> Boolean): Boolean inline fun IntArray.all(predicate: (Int) -> Boolean): Boolean inline fun LongArray.all(predicate: (Long) -> Boolean): Boolean inline fun FloatArray.all(predicate: (Float) -> Boolean): Boolean inline fun DoubleArray.all(predicate: (Double) -> Boolean): Boolean ...

التابع ‎‎jQuery.extend()‎‎ في jQuery

jQuery.extend( target [, object1 ] [, objectN ] )‎ القيم المعادة يعيد كائنًا من النوع Object. الوصف يدمج هذا التابع محتويات عنصرين أو أكثر مع بعضهما بعضًا ويضع الناتج في الكائن الأول. jQuery.extend( target [, object1 ] [, objectN ] )‎ أُضيف مع الإصدار: 1.0. target الكائن الذي سيضاف إليه خاصِّيَّات جديدة من الكائنات الأخرى إن مُرِّرت، أو سيوسِّع مجال أسماء jQuery (namespace)‎ إن لم يُمرَّر سواه. object1 كائن يحتوي على خاصِّيَّات إضافية يراد دمجها مع الكائن الأول target المعطى. ...

التابع ‎‎jQuery.extend()‎‎ في jQuery

jQuery.extend( target [, object1 ] [, objectN ] )‎ القيم المعادة يعيد كائنًا من النوع Object. الوصف يدمج هذا التابع محتويات عنصرين أو أكثر مع بعضهما بعضًا ويضع الناتج في الكائن الأول. jQuery.extend( target [, object1 ] [, objectN ] )‎ أُضيف مع الإصدار: 1.0. target الكائن الذي سيضاف إليه خاصِّيَّات جديدة من الكائنات الأخرى إن مُرِّرت، أو سيوسِّع مجال أسماء jQuery (namespace)‎ إن لم يُمرَّر سواه. object1 كائن يحتوي على خاصِّيَّات إضافية يراد دمجها مع الكائن الأول target المعطى. ...

Kotlin/Topics

بُنية لغة Kotlin مشابهةٌ لبنية لغة البرمجة Java بوصفها كائنيّة التوجه (OOP)، وبالتالي فهي تعتمد أساسًا على وجود الأصناف (classes) التي تحتوي بدورها على الخاصّيّات (properties) والدوال (functions)، كما وتدعم Kotlin العلاقات فيما بينها مثل الوراثة (inheritance) من صنفٍ أعلى (superclass) أو التداخل فيما بينها (nesting classes)، وتمتاز بوجود مُحدِّدات الوصول (visibility modifiers) للتحكم بعمليات الوصول للبيانات المُخزَّنة، وكذلك فهي تعتمد في بُنيتها على الحزم (packages) والمكتبات (libraries) التي تحتوي على الدوال المساعدة عند الحاجة إليها، أمّا عن بُنية التعليمات ...

أنماط الشيفرات المُتعارَف عليها ما بين مبرمجي Kotlin

تعرِض هذه الصفحة أنماط كتابة الشيفرات المُتعارَف عليها (conventions) من قِبل مبرمجي لغة Kotlin. تطبيق دليل التنسيق (Applying the Style Guide) لضبط المُنسِّق IntelliJ formatter بما يتوافق مع هذا الدليل يُنصَح بتثبيت إضافة Kotlin بالإصدار 1.2.20 (أو أي إصدارٍ أحدث) وضبط المّحرِّر بالانتقال إلى الإعدادات (Settings) ثمّ المُحرِّر (Editor) ثم نمط الشيفرة (Code Style) ثم Kotlin واختر "ضبط من..." Set from…"‎" في الزاوية اليمنى العُلويَّة ومن القائمة اختر الخيار Predefined style/Kotlin style guide. وللتأكد من تنسيق الشيفرة وفقًا لدليل Kotlin ...

أنماط الشيفرات المُتعارَف عليها ما بين مبرمجي Kotlin

تعرِض هذه الصفحة أنماط كتابة الشيفرات المُتعارَف عليها (conventions) من قِبل مبرمجي لغة Kotlin. تطبيق دليل التنسيق (Applying the Style Guide) لضبط المُنسِّق IntelliJ formatter بما يتوافق مع هذا الدليل يُنصَح بتثبيت إضافة Kotlin بالإصدار 1.2.20 (أو أي إصدارٍ أحدث) وضبط المّحرِّر بالانتقال إلى الإعدادات (Settings) ثمّ المُحرِّر (Editor) ثم نمط الشيفرة (Code Style) ثم Kotlin واختر "ضبط من..." Set from…"‎" في الزاوية اليمنى العُلويَّة ومن القائمة اختر الخيار Predefined style/Kotlin style guide. وللتأكد من تنسيق الشيفرة وفقًا لدليل Kotlin ...

الدالة urllib.parse.urlunsplit()‎‎ في بايثون

تدمج الدالة عناصر الصفّ الذي يشبه ما تعيده الدالة urlsplit()‎ في عنوان URL كامل على هيئة سلسلة نصية. البنية العامة urllib.parse.urlunsplit(parts) ‎المعاملات part يمكن لهذا المعامل أن يكون أي كائن قابل للتكرار iterable يتكوّن من ستة عناصر. قد يؤدي هذا إلى الحصول على عنوان URL مختلف قليلًا ولكنّه مكافئ للعنوان الأصلي إذا كان الأخير يتضمّن فواصل غير ضرورية (مثل علامة ? مع استعلام فارغ، ينصّ معيار RFC على أنّ العنوانين متكافئان). أمثلة يبين المثال التالي طريقة عمل الدالة: >>> from ...

حذف الدالة DROP FUNCTION

يستخدم هذا الأمر لحذف دالة (أو إجراء) أو أكثر مُعرَّفة مسبقًا عبر الأمر CREATE FUNCTION، وله البنية العامّة الآتية: DROP {FUNCTION | PROCEDURE} [ IF EXISTS ] name [ ( [argtype [, ...] ] ) ] [, ...] [ CASCADE | RESTRICT ] إذ تُحذف الدالة المحدد باسم name، وتمنع IF EXISTS حدوث أي خطأ في حال عدم وجود دالة بهذا الاسم في قاعدة البيانات، ويُحدد نوع البيانات لمتغيرات الدالة ما بين قوسين لاحتمال تكرار نفس اسم الدالة بلائحة مختلفة ...

الكائن Process

يكون الكائن process عامًا (global) والذي يزود معلومات عن عملية Node.js الحالية ورقابةً عليها، كونه كائنًا عامًا فهو متوافر دومًا لتطبيقات Node.js دون استخدام ()require. أحداث Process الكائن process هو نسخة من EventEmitter. الحدث 'beforeExit' أُضيف في الإصدار: 0.11.12. يُطلَق الحدث 'beforeExit' عندما تفرغ Node.js من حلقة الأحداث (event loop) ولا يوجد عمل إضافي لجدولته. بشكل طبيعي، عملية Node.js سوف تنتهي عندما لا يكون هناك عمل مجدولٌ، لكن المُنصِت المسجِّل لحدث 'beforeExit' يمكن أن يعمل استدعاءات غير متزامنة، وبذلك يسبب ...

الدالة plus()‎ في Kotlin

تضيف الدالة plus()‎ المحرف الذي استٌدعي معها إلى بداية السلسلة النصية المُمرّرة إليها. البنية العامة inline operator fun Char.plus(other: String): String وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). يدل أيضًا وجود الكلمة المفتاحيّة operator على أنّ هذا التابع مرتبطٌ بمعامل تكرار (iteration operator). المعاملات other السلسلة النصية الأخرى التي سيضاف إليها المحرف المعطى. القيم المعادة تعاد السلسلة النصية other بعد إضافة المحرف المعطى إلى بدايتها. أمثلة استعمال الدالة plus()‎ لإضافة ...

while في بايثون

تستخدم عبارة while لتكرار عملية التنفيذ ما دام الشرط المقدّم إلى هذه العبارة صحيحًا، وتأخذ عبارة while الصيغة التالية: while expression: statement مثال: >>> a, b = 0, 1 >>> while b < 10: ...     print(b) ...     a, b = b, a+b ... 1 1 2 3 5 8 تستمر هذه العبارة في تكرار تنفيذ الشيفرة ما دام الشرط صحيحًا True، أما إذا كان نتيجة الشرط خطأً False (قد يحدث ذلك في الدورة الأولى من الحلقة) فستنتقل عملية التنفيذ إلى عبارة else في حال وجودها، وتوقف اللغة ...

الدالة plus()‎ في Kotlin

تضيف الدالة plus()‎ المحرف الذي استٌدعي معها إلى بداية السلسلة النصية المُمرّرة إليها. البنية العامة inline operator fun Char.plus(other: String): String وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). يدل أيضًا وجود الكلمة المفتاحيّة operator على أنّ هذا التابع مرتبطٌ بمعامل تكرار (iteration operator). المعاملات other السلسلة النصية الأخرى التي سيضاف إليها المحرف المعطى. القيم المعادة تعاد السلسلة النصية other بعد إضافة المحرف المعطى إلى بدايتها. أمثلة استعمال الدالة plus()‎ لإضافة ...

التابع Array.delete_if في روبي

يحذف التابع delete_if جميع عناصر المصفوفة التي تعيد الكتلة البرمجية المعطاة عند تطبيقها على كل عنصر منها القيمة true. يُعدَّل على المصفوفة مباشرةً في كل مرَّة تستدعى فيها الكتلة، وليس بعد انتهاء التكرار (iteration). إن لم تمرَّر أي كتلة إلى هذا التابع، فسيعيد كائنًا من النوع Enumerator. البنية العامة delete_if { |item| block } → ary delete_if → Enumerator القيم المعادة تعاد المصفوفة نفسها بعد حذف العناصر التي أعيدت معها القيمة true عند تطبيق الكتلة block على كلٍّ منها، أو ...

التابع list.append()‎ في بايثون

يضيف هذا التابع عنصرًا إلى نهاية القائمة. البنية العامة l.append() المعاملات x العنصر المراد إضافته إلى نهاية القائمة. القيمة المعادة يعيد التابع القيمة None. أمثلة يبين المثال التالي كيفية استخدام التابع append لإضافة عناصر إلى القائمة: >>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'] >>> fruits.append('grapse') >>> fruits ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana', 'grapse'] انظر أيضًا القوائم في بايثون. التابع list.sort()‎: فرز القائمة في مكانها وذلك بإجراء مقارنة بين عناصر القائمة بواسطة العامل ‎<‎ فقط. التابع list.extend()‎: إضافة مجموعة من العناصر إلى ...

الدالة weakref.WeakKeyDictionary()‎ في بايثون

صنف ربط Mapping Class ينشئ إشارات ضعيفة إلى المفاتيح. يجري تجاهل عناصر القاموس التي لا تمتلك أي إشارات قوية إلى مفاتيحها، ويمكن الاستفادة من ذلك في ربط بيانات إضافية مع كائن معين يتبع جزءًا آخر في التطبيق دون الحاجة إلى إضافة الخصائص إلى تلك الكائنات، وتظهر أهمّية هذا الأمر مع الكائنات التي تعيد تعريف override قابلية الوصول إلى الخصائص. البنية العامة weakref.WeakKeyDictionary([dict]) المعاملات dict القاموس الذي سينشئ هذا الصنف إشارات ضعيفة إلى مفاتيحه. تنبيه: لما كان WeakKeyDictionary مبنيًا على قواميس ...

التابع list.copy()‎ في بايثون

يصنع هذا التابع نسخة سطحية عن القائمة. هذا التابع مكافئٌ للتعبير ‎a[:]‎. البنية العامة l.copy() القيمة المعادة يعيد عذا التابع نسخة سطحية عن القائمة الأصلية. أمثلة يبين المثال التالي كيفية استخدام هذا التابع لإنشاء نسخة من قائمة: >>> list = [1, 4, 8, 9] >>> new_list = list.copy() >>> new_list.append(10) >>> list [1, 4, 8, 9] >>> new_list [1, 4, 8, 9, 10] انظر أيضًا القوائم في بايثون. التابع list.sort()‎: فرز القائمة في مكانها وذلك بإجراء مقارنة بين عناصر القائمة بواسطة العامل ‎<‎ فقط. التابع list.append()‎: إضافة ...

الوحدة collections.abc‎ في بايثون

تقدّم هذه الوحدة مجموعة من الأصناف الأساسية المجرّدة abstract base calsses (يرمز لها ABC اختصارًا) والتي يمكن استخدامها للتأكد ممّا إذا كان صنف معيّن يقدّم واجهة interface معينة، كأن يكون الصنف قابلًا للتقطيع hashable أو أنّه صنف ربط mapping. ملاحظة: قبل الإصدار 3.3 من اللغة كانت هذه الوحدة جزءًا من وحدة collections. الأصناف الأساسية المجرّدة في الوحدة collections تقدّم وحدة collections الأصناف الأساسية المجرّدة التالية: الصنف الأساسي المجرد يرث من التوابع المجرّدة توابع mixin Container   __contains__   Hashable   ...

التابع IO.read‎ في روبي

يقرأ التابع read عددًا محدَّدًا من البايتات من المجرى الذي استدعي معه عندما يُستدعى التابع read في نهاية الملف، فسيعيد إما nil أو ""، بناءً على الطول المُمرَّر إليه، مثلا، ستعيد التعبيرات read و read(nil)‎ و read(0)‎ القيمة ""، فيما سيعيد التعبير read( positive_integer )‎ القيمة nil. لاحظ أنَّ هذا التابع يتصرف بطريقة مشابهة للدالة fread()‎ في لغة C. وهذا يعني أنَّه سيحاول إجراء استدعاءات النظام read(2)‎ لقراءة البيانات بالطول المحدَّد (أو حتى يصادف محرف نهاية الملف EOF). يستمر هذا السلوك ...

String.prototype.indexOf()‎

الدالة String.prototype.indexOf()‎ تُعيد الفهرس الموجود ضمن كائن String الذي يستدعي الدالة والذي يكون موضع أوّل مُطابَقة للقيمة المُحدَّدة لهذه الدالة بدءًا من fromIndex، أو القيمة ‎-1 إن لم يُعثَر عليها. البنية العامة str.indexOf(searchValue[, fromIndex]) searchValue السلاسل النصية التي نريد البحث عنها ومعرفة فهرسها. fromIndex قيمة اختيارية، وهي عددٌ صحيحٌ يُمثِّل الفهرس الذي سيبدأ البحث منه، والقيمة الافتراضية هي 0. إذا كانت قيمة fromIndex أقل من 0 أو أكبر من str.length، فسيبدأ البحث عند الفهرس 0 أو str.length على التوالي وبالترتيب. ...

التابع list.pop()‎ في بايثون

يحذف هذا التابع العنصر في الموقع المحدّد من قبل المستخدم. البنية العامة l.pop() المعاملات i معامل اختياري، يحدّد موقع العنصر المراد حذفه من القائمة. في حال عدم تعيين قيمة لهذا المعامل فسيحذف التابع العنصر الأخير في القائمة. القيمة المعادة يعيد هذا التابع العنصر المحذوف من القائمة. أمثلة يبين المثال التالي كيفية استخدام هذا التابع لحذف العناصر من القائمة: >>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'] >>> fruits.pop(2) 'pear' >>> fruits.pop() 'banana' >>> انظر أيضًا القوائم في بايثون. التابع list.sort()‎: فرز القائمة في ...

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

يضبط التابع srand بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator)، إذ يعين Random::DEFAULT ويعطيها قيمة العدد المُعطى ثم يعيد قيمة البذرة السابقة. في حال عدم تمرير أي عدد إلى التابع، يحدد التابع srand بذرةً للمولد باستخدام مصدر العشوائية (entropy) الذي يوفره نظام التشغيل، إن كان متاحًا (وهو ‎/dev/urandom على أنظمة يونكس أو مُوفِّر خوارزمية التشفير RSA على نظام ويندوز)، والذي يُدمَج مع الوقت، ومعرف العملية (pid)، ورقم التسلسل. يمكن استخدام التابع srand لضمان تكرار تسلسلات الأعداد شبه العشوائية ...

array_push()‎

(PHP 4, PHP 5, PHP 7) تدفع الدالة array_push()‎ عنصرًا واحدًا أو أكثر إلى نهاية المصفوفة. الوصف int array_push ( array &$array , mixed $value1 [, mixed $... ]) تعامل الدالة array_push()‎ المصفوفة array كمكدس (stack)، وتدفع المتغيرات التي مررناها إلى نهاية المصفوفة array وسيزداد طولها بعدد المتغيرات التي أضفناها. ولها نفس تأثير الشيفرة الآتية: <?php $array[] = $var; ?> مع تكرارها لكل قيمة يتم إدخالها. ملاحظة: إذا كنت تستخدم array_push()‎ لإضافة عنصر واحد إلى المصفوفة، فمن الأفضل استخدام ‎$‎array[]‎‎ =‎ لأن هذه الطريقة ...

التابع list.remove()‎ في بايثون

يحذف هذا التابع أول عنصر في القائمة تساوي قيمته القيمة التي يحدّدها المستخدم. البنية العامة l.remove() المعاملات x العنصر المراد حذفه من القائمة. القيمة المعادة يعيد هذا التابع القيمة None، ويُطلِق الخطأ ValueError إن كان العنصر المراد حذفه غير موجودٍ في القائمة. أمثلة يبين المثال التالي كيفية استخدام هذا التابع لحذف العناصر من القائمة: >>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'] >>> fruits.remove('banana') >>> fruits ['orange', 'apple', 'pear', 'kiwi', 'apple', 'banana'] >>> fruits.remove('watermelon') Traceback (most recent call last): File "<input>", line ...

التابع Counter.substract()‎ في بايثون

يطرح التابع العناصر من الكائن المكرِّر أو من كائن mapping آخر (أو عداد آخر). البنية العامة c.subtract([iterable-or-mapping]) المعاملات iterable أو mapping الكائن المكرِّر أو كائن mapping آخر (أو عداد آخر) الذي ستُطرح منه العناصر. n إن لم يأخذ هذا المعامل أي قيمة أو أخذ القيمة None، فإنّ التابع يعيد جميع العناصر في العداد. وجدير بالذكر أنّه لا يوجد ترتيب معيّن للعناصر التي تمتلك تعدادًا متساويًا. القيمة المعادة يطرح التابع العناصر من الكائن المكرِّر أو من كائن mapping آخر (أو عداد ...

array_push()‎

(PHP 4, PHP 5, PHP 7) تدفع الدالة array_push()‎ عنصرًا واحدًا أو أكثر إلى نهاية المصفوفة. الوصف int array_push ( array &$array , mixed $value1 [, mixed $... ]) تعامل الدالة array_push()‎ المصفوفة array كمكدس (stack)، وتدفع المتغيرات التي مررناها إلى نهاية المصفوفة array وسيزداد طولها بعدد المتغيرات التي أضفناها. ولها نفس تأثير الشيفرة الآتية: <?php $array[] = $var; ?> مع تكرارها لكل قيمة يتم إدخالها. ملاحظة: إذا كنت تستخدم array_push()‎ لإضافة عنصر واحد إلى المصفوفة، فمن الأفضل استخدام ‎$‎array[]‎‎ =‎ لأن هذه الطريقة ...

التابع Counter.update()‎ في بايثون

هذا التابع مشابه للتابع dict.update()‎ ولكنّه يضيف التعدادات بدلًا من استبدالها. البنية العامة c.update([iterable-or-mapping]) المعاملات iterable أو mapping الكائن المكرِّر أو كائن mapping آخر (أو عداد آخر) الذي ستُضاف منه العناصر. n إن لم يأخذ هذا المعامل أي قيمة أو أخذ القيمة None، فإنّ التابع يعيد جميع العناصر في العداد. وجدير بالذكر أنّه لا يوجد ترتيب معيّن للعناصر التي تمتلك تعدادًا متساويًا. القيمة المعادة عند استخدام هذا التابع يجري حساب العناصر من كائن مكرِّر أو تضاف من كائن ربط آخر ...

محددات المُعرِّفات

مُحدِّد المُعرِّف (ID selector) في CSS يُطابِق العناصر وفق قيمة الخاصية ID التابعة لها. لاحظ أنَّه يجب أن يُطابِق هذه المُحدِّد قيمة الخاصية id تمامًا، كما في المُحدِّد الآتي الذي سيُحدِّد العنصر الذي له المُعرِّف demo: #demo { border: red 2px solid; } ويمكن تحديد العنصر الذي يكون له قيمة معيّنة للخاصية id وله نوع معيّن، مثل تحديد عنصر <div> التي تكون قيمة الخاصية id فيه هي demo: div#demo { border: red 2px solid; } لاحظ أنَّ معيار HTML5 يقول أنَّ قيمة ...

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

يكرِّر التابع each_with_object الكتلة المعطاة على كل عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه مع كائن اعتباطي (الكائن المُمرَّر إليه) ثم يعيد هذا الكائن. إن لم تُعطَ الكتلة، فسيُعيد التابع كائنًا من النوع Enumerator. البنية العامة each_with_object(obj) { |(*args), memo_obj| ... } → obj each_with_object(obj) → an_enumerator المعاملات obj كائن يراد تكرار تنفيذ الكتلة المعطاة عليه مع كل عنصر من عناصر الكائن القابل للتعداد المعطى. القيمة المعادة يعاد الكائن obj المُمرَّر نفسه بعد تنفيذ العملية أو يعاد كائن من النوع Enumerator ...

الشيفرة النظيفة (Clean Code)

تهدف عملية إعادة التصميم (refactoring) للتخلُّص من المتطلَّبات التقنيّة الزائدة، إذ تحوِّل كلَّ الفوضى المنتشرة في الشيفرة إلى شيفرةٍ نظيفةٍ (clean code) ذات تصميمٍ مُبسَّط، وهذا -لا بُدَّ- أمرٌ رائعٌ ولكن بالبداية؛ ما معنى أن تكون الشيفرة نظيفةً؟ مميزات الشيفرة النظيفة فيما يأتي بعضٌ مما يميز الشيفرة النظيفة: واضحةٌ ومقروءةٌ للمبرمجين الآخرين إنّ ما يجعل الشيفرات أكثر تعقيدًا (بعيدَا عن الخوارزميّات فائقة التعقيد) هو اعتمادها على تسمية المتغيِّرات تسميةً ضعيفةً (غير منطقيّةٍ أو بدون معنى) أو احتوائها على أصناف (classes) ...

عرقلة التغيير (Change Preventers)

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

الخاصية background-attachment

الخاصية background-attachment في CSS تُحدِّد إذا كان موضع الصورة (المُحدَّدة عبر الخاصية background-image) ثابتًا (fixed) ضمن إطار العرض (viewport) أو كان سيُمرَّر عند التمرير في العنصر (أو الصفحة) الحاوي له. بطاقة الخاصية القيمة الابتدائية scroll تُطبَّق على جميع العناصر. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة كالقيمة المُحدَّدة. /* كلمات مفتاحية */ background-attachment: scroll; background-attachment: fixed; background-attachment: local; /* القيم العامة */ background-attachment: inherit; background-attachment: initial; background-attachment: unset; أمثلة مثال بسيط عن استخدام الخاصية background-attachment لجعل موضع صورة الخلفية (المُحدَّدة عبر الخاصية background-image) ثابتًا. شيفرة HTML: ...

المجموعات (Collections) في Laravel

 مقدمة يوفر الصنف Illuminate\Support\Collection غلافًا ملائمًا و مساعدًا على العمل مع مصفوفات البيانات. مثلًا، تفقد الشيفرة الموالية إذ سنستعمل المساعد collect لإنشاء نسخة Collection جديدة من المصفوفة، ننفذ الدالة strtoupper مع كل عنصر، ثم نحذف كل العناصر الفارغة: $collection = collect(['taylor', 'abigail', null])->map(function ($name) { return strtoupper($name); }) ->reject(function ($name) { return empty($name); }); كما ترى، تسمح الدالة بسلسلة توابعها لتنفيذِ تخطيطِ دقيق و التحكم في حجم المصفوفة قيد العمل. بشكل عام، المجموعات غير قابلة للتغيير، أي أن كل ...

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

(PHP 4, PHP 5, PHP 7) تستخلص الدالة var_dump()‎‎‎ معلومات حول المتغيّر. الوصف void var_dump ( mixed $expression [, mixed $... ] ) تعرض هذه الدالة معلومات مُنظَّمة حول واحد أو أكثر من التعابير (expressions) بما في ذلك نوعها وقيمتها. تُستكشف المصفوفات والكائنات بشكل تكراري مع قيم بغرض إظهار البنية. تُعاد كافة خصائص الكائنات المحميّة والخاصّة والعامّة ما لم يعتمد الكائن التابع debugInfo()‎__ (اعتُمِدَ في إصدار PHP 5.6.0). فائدة: كما هو الحال مع أي شيء يُخرِج نتائجه مباشرةً إلى المتصفّح، يُمكِن ...

الدالة Char.dec()‎ في Kotlin

تعيد الدالة dec()‎ المحرف السابق للمحرف الذي استُدعيت معه. البنية العامة operator fun dec(): Char وجود الكلمة المفتاحيّة operator يدل على أنّ هذا التابع مرتبطٌ بمعامل تكرار (iteration operator). القيمة المعادة يعاد المحرف السابق للمحرف المعطى. أمثلة استعمال الدالة ()dec لجلب الحرف الذي يسبق الحرف 'f': fun main(args: Array<String>) { val x = 'f' println(x.dec()) // e } انظر أيضًا الدالة compareTo()‎: توازن بين قيمة العنصر الذي استُدعيت معه والقيمة المُمرّرة إليه ثمَّ تعيد القيمة 0 إن كانا ...

التابع Random.srand في روبي

يحدِّد التابع srand بذرة مولد الأعداد شبه العشوائية (pseudo-random number generator) للنظام، بتعيين Random::DEFAULT، إلى القيمة المُمرَّرة إليه. يعيد التابع بعد استدعائه قيمة البذرة السابقة. في حال عدم أية قيمة إلى التابع srand، فسيبذُر المولد باستخدام مصدر للعشوائية (entropy) يوفره نظام التشغيل إن كان متاحًا (‎/dev/urandom على أنظمة Unix أو مُوفِّر خوارزمية التشفير [RSA] على نظام Windows)؛ تدمج هذه البذرة بين الوقت، ومعرف العملية (pid)، ورقم التسلسل لتوليدها من أجل أن تكون العشوائية كافية. يمكن استخدام srand لضمان تكرار تسلسلات ...

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

يستدعي التابع each_with_index الكتلة المعطاة مع وسيطين هما: العنصر نفسه وفهرسه لكل عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه. إن مُرِّر أي شيء إلى التابع، فسيُمرَّر مباشرةً إلى ()each. إن لم تُعطَ الكتلة، فسيُعيد التابع كائنًا من النوع Enumerator. البنية العامة each_with_index(*args) { |obj, i| block } → enum each_with_index(*args) → an_enumerator المعاملات args الوسائط المراد تمريرها إلى ()each. القيمة المعادة يعاد كائن قابل للتعداد يحوي نتائج تكرار الكتلة block على كل عنصر وفهرسه من عناصر الكائن القابل للتعداد المعطى، أو ...

التابع Enumerator.next_values في روبي

يعيد التابع next_values مصفوفة تحوي الكائن التالي في المُعدِّد الذي استدعي معه، ويحرك موضع المؤشر الداخلي للأمام خطوةً واحدةً. عند وصول المؤشر إلى النهاية، يُطلَق الاستثناء StopIteration. يمكن استعمال هذا التابع للتمييز بين yield و yield nil. البنية العامة next_values → array القيمة المعادة تعاد مصفوفة تحوي الكائن التالي في المُعدِّد المعطى. أمثلة مثال على استعمال التابع next_values: o = Object.new def o.each yield yield 1 yield 1, 2 yield nil yield [1, 2] end e = o.to_enum p e.next_values p e.next_values p ...

الدالة sortDescending()‎ في Kotlin

ترتِّب الدالة sortDescending()‎ المصفوفة أو القائمة المتغيرة (MutableList) التي استُدعيت معها تنازليًّا.  البنية العامة يمكن استدعاء الدالة sortDescending()‎ مع المصفوفات والقوائم المتغيرة:  fun <T : Comparable<T>> Array<out T>.sortDescending() fun ByteArray.sortDescending() fun ShortArray.sortDescending() fun IntArray.sortDescending() fun LongArray.sortDescending() fun FloatArray.sortDescending() fun DoubleArray.sortDescending() fun CharArray.sortDescending() fun <T : Comparable<T>> MutableList<T>.sortDescending() أمثلة استعمال الدالة ()sortDescending لترتيب عناصر مصفوفة تنازليًّا: import java.util.Arrays fun main(args: Array<String>) { val array = arrayOf(1, 9, -3, 7, 5, 6) array.sortDescending() print(Arrays.toString(array)) // [9, ...

التسلط على الكائنات الأخرى (Feature Envy)

توصيف المشكلة استخدام بعضُ التوابع (methods) بياناتِ الكائنات (objects) الأخرى أكثر ممّا تستخدم بياناتِها ذاتَها. أسبابها تحدث هذه المشكلة عقب نقل الحقول (fields) إلى أصناف البيانات (data class)، إذ من الأفضل نقلُ التوابع المستخدِمة لتلك الحقول لذلك الصنف أيضًا. وما الحل؟ لنضع بالحسبان القاعدة الآتية: يجب أن تبقى الأجزاء التي تتغيَّر بآنٍ واحدٍ في المكان ذاته معًاولتحقيق ذلك: نقلُ التوابع (move methods) إلى المكان الأنسب في الشيفرة. عندما يستخدِم جزءٌ فقط من التابع بياناتِ كائنٍ (object) آخر، فالأفضل استخراجُ تابعٍ ...

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

تُقدّم الوحدة functools دوال عاليّة الرّتبة (higher-order functions)، وهي دوال تستقبل دوالا أخرى، تُغيّرها، أو تُعيد دوال أخرى. وعلى العموم، يُمكن لأيّ كائن قابل للاستدعاء أن يُعامل مُعاملة الدّالة عند استخدام هذه الوحدة. تُعرّف الوحدة functools الدّوال التّاليّة: functools.cmp_to_key()‎ تُحوّل دالّةَ مُقارنة (comparison function) إلى دالّة مفتاح (key function). functools.partial()‎ تُستعمل لإنشاء دالّة جزئيّة من دالّة بتمرير قيم افتراضيّة ثابتة لها. functools.reduce()‎ تُطبّق دالّةً تأخذ مُعاملين بتراكب لعناصر الكائن القابل للتّكرار المُعطى، من اليسار إلى اليمين لتخفيض العناصر إلى قيمة ...

الدالة Char.inc()‎ في Kotlin

تعيد الدالة inc()‎ المحرف اللاحق للمحرف الذي استُدعيت معه. البنية العامة operator fun inc(): Char وجود الكلمة المفتاحيّة operator يدل على أنّ هذا التابع مرتبطٌ بمعامل تكرار (iteration operator). القيمة المعادة يعاد المحرف اللاحق للمحرف المعطى. أمثلة استعمال الدالة ()dec لجلب الحرف الذي يلي الحرف 'W': fun main(args: Array<String>) { val x = 'W' println(x.inc()) // X } انظر أيضًا الدالة compareTo()‎: توازن بين قيمة العنصر الذي استُدعيت معه والقيمة ...

سحب الحقل لأعلى (Pull Up Field)

المشكلة يحتوي صنفان على نفس الحقل. الحل إزالة الحقل من الأصناف الفرعية ونقله إلى الصنف الأعلى. مثال قبل إعادة التصميم يحتوي الصنفان Tank و Soldier المتفرعان من الصنف Unit على الحقل المشترك health: يحتوي الصنفان Soldier و Tank على نفس الحقل health. بعد إعادة التصميم إزالة الحقل health من الأصناف الفرعية (الصنف Soldier والصنف Tank) ونقله إلى الصنف Unit الأب: إزالة الحقل health من الأصناف الفرعية ونُقل إلى الصنف الأب. لم إعادة التصميم؟ تنمو الأصناف الفرعية وتتطور بشكل منفصل، مما ...

الدالة analogWriteResolution()‎ في أردوينو

الدالة analogWriteResolution()‎ هي دالةٌ ملحقةٌ بالواجهة البرمجية التشابهية (Analog API) مخصَّصةٌ للوحات أردوينو Due، إذ تُستعمَل لضبط دقة الدالة analogWrite()‎. يمكن استدعاء هذه الدالة لضبط الدقة إلى القيمة الافتراضية التي هي 8 بت (تمثِّل القيم بين 0 و 255) من أجل التوافقية الرجوعية مع اللوحات التي تعتمد على متحكمات AVR. تملك لوحات أردوينو Due الإمكانيات العتادية التالية: 12 رجل مولِّدة لإشارات PWM بدقة 8 بت افتراضية -مثل اللوحات التي تعتمد على متحكمات AVR-. يمكن زيادة الدقة لتصل إلى 12 بت. ...

الدالة Float.inc()‎ في Kotlin

تزيد الدالة inc()‎ العدد العشري (float) الذي استُدعي معها بمقدار 1 ثمَّ تعيد القيمة الناتجة. البنية العامة operator fun inc(): Float وجود الكلمة المفتاحيّة operator يدل على أنّ هذا التابع مرتبطٌ بمعامل تكرار (iteration operator). القيمة المعادة تعاد قيمة من النوع Float تمثل القيمة المعطاة بعد زيادتها بمقدار 1. أمثلة استعمال الدالة ()dec لزيادة عدد عشري بمقدار 1 فقط: fun main(args: Array<String>) { val x: Float = 5.54f println(x.inc()) // 6.54 } انظر أيضًا ...

الدالة Byte.dec()‎ في Kotlin

تنقص الدالة dec()‎ القيمة التي استُدعيت معها بمقدار 1 ثم تعيد القيمة الناتجة. البنية العامة operator fun dec(): Byte وجود الكلمة المفتاحيّة operator يدل على أنّ هذا التابع مرتبطٌ بمعامل تكرار (iteration operator). القيمة المعادة تعاد قيمة من النوع Byte تمثل القيمة المعطاة بعد انقاصها بمقدار 1. أمثلة استعمال الدالة ()inc لانقاص قيمة عددية: fun main(args: Array<String>) { val x = 3 println(x.dec()) // 2 } انظر أيضًا الدالة compareTo()‎: توازن  بين قيمة العنصر الذي استُدعيت ...

Array.prototype.shift()‎

الدالة Array.prototype.shift()‎ تحذف أوّل عنصر من المصفوفة وتُعيد قيمته، وهذه الدالة تُغيّر عدد عناصر (length) المصفوفة. var a = [1, 2, 3]; var b = a.shift(); console.log(a); // [2, 3] console.log(b); // 1 البنية العامة arr.shift() القيمة المعادة القيمة المحذوفة من المصفوفة، أو القيمة undefined إذا كانت المصفوفة فارغة. الوصف الدالة shift تحذف آخر عنصر من المصفوفة وتُعيد تلك القيمة إلى التعبير البرمجي الذي استدعاها؛ وإذا اُستدعيت الدالة shift على مصفوفة فارغة فستُعيد القيمة undefined. أمثلة المثال الآتي يُنشِئ مصفوفةً باسم myFish تحتوي ...

متى تحتاج إعادة التصميم؟ (When to Refactor)

نحتاج إلى إعادة التصميم (قاعدة المرات الثلاث): عند قيامك بأيّة مهمةٍ للمرّة الأولى، فالمهم هو إنجازها والحصول على النتيجة وحسب. لدى قيامك بمهمةٍ مشابهةٍ للمرّة الثانية قد ترفض بادئ الأمر فكرة التكرار ولكنك ستجد نفسك تقوم بنفس العمل! عند قيامك بالمهمة للمرّة الثالثة، ستحتاج إعادة التصميم. عند إضافة ميّزةٍ (feature) جديدة تساعد عملية إعادة التصميم (refactoring) على فهم شيفرات المبرمجين الآخرين بشكلٍ أفضل، وعند العمل على الشيفرة غير الجيدة لأحدهم فعليك بإعادة تصميمها أولًا، وهذا ضروريٌّ إذ يصبح التحكُّم بالشيفرة ...

التابع Enumerator.each في روبي

يتكرر التابع each عبر الكتلة المعطاة وفقًا للكائن المُعدِّد الذي استدعي معه والطريقة التي أُنشِئ بها. إن لم تُعطَ أية كتلة أو لم يُمرَّر أي شي إلى التابع، فسيعيد الكائن الذي استدعي معه نفسه. البنية العامة each { |elm| block } → obj each → enum each(*appending_args) { |elm| block } → obj each(*appending_args) → an_enumerator المعاملات appending_args معاملات يراد إضافتها إلى الكائن المعطى. القيمة المعادة يعاد الناتج الذي ستعيده الكتلة block بعد تكرارها على كل قيمة من قيم الكائن المُعدِّد المعطى، أو يعاد الكائن ...

الدالة Char.rangeTo()‎ في Kotlin

تنشئ الدالة rangeTo()‎ مجالًا يقع بين المحرف الذي استدعي معها والمحرف المُمرّر إليها. البنية العامة operator fun rangeTo(other: Char): CharRange وجود الكلمة المفتاحيّة operator يدل على أنّ هذا التابع مرتبطٌ بمعامل تكرار (iteration operator). المعاملات other المحرف الآخر الذي سيُنشَأ منه المجال. القيمة المعادة يعاد مجالٌ ينحصر بين المحرف المعطى والمحرف other الممرر. أمثلة استعمال الدالة ()rangeTo لإنشاء مجال من المحارف يقع بين المحرف 'a' والمحرف 'd': fun main(args: Array<String>) { val x = 'a' ...

التابع list.index()‎ في بايثون

يحدد هذا التابع موقع العنصر ضمن القائمة. البنية العامة l.index() المعاملات x العنصر المراد تحديد موقعه في القائمة. start معامل اختياري يحدّد الموقع الذي تبدأ منه الدالة عملية البحث. end معامل اختياري يحدّد الموقع الذي تنهي فيه الدالة عملية البحث. القيمة المعادة يعيد التابع موقع أول ظهور للعنصر في القائمة. يأخذ العنصر الأول في القائمة الموقع 0، والعنصر الثاني الموقع 1 وهكذا دواليك. جدير بالذكر أنّ قيمة موقع العنصر المعادة تحدّد بالنسبة إلى بداية القائمة وليس الموقع الذي يبدأ منه ...

الدالة Double.dec()‎ في Kotlin

تنقص الدالة dec()‎ العدد العشري المضاعف (double) الذي استُدعي معها بمقدار 1 ثمَّ تعيد القيمة الناتجة. البنية العامة operator fun dec(): Double وجود الكلمة المفتاحيّة operator يدل على أنّ هذا التابع مرتبطٌ بمعامل تكرار (iteration operator). القيمة المعادة تعاد قيمة من النوع Double تمثل القيمة المعطاة بعد انقاصها بمقدار 1. أمثلة استعمال الدالة ()dec لإنقاص عدد عشري مضاعف بمقدار 1 فقط: fun main(args: Array<String>) { val x: Double = 3.4 println(x.dec()) // 2.4 } ...

الدالة Char.plus()‎ في Kotlin

تجمع الدالة plus()‎ القيمة العددية الممرَّرة إليها مع القيمة العددية للمحرف المستدعى معها ثمَّ تعيد المحرف الذي يقابل القيمة الناتجة. البنية العامة operator fun plus(other: Int): Char وجود الكلمة المفتاحيّة operator يدل على أنّ هذا التابع مرتبطٌ بمعامل تكرار (iteration operator). المعاملات other عدد صحيح يراد جمعه مع القيمة العددية للمحرف المعطى. القيمة المعادة يعاد المحرف الذي قيمته العددية هي حاصل جمع القيمة العددية other الصحيحة مع القيمة العددية للمحرف المعطى. أمثلة استعمال الدالة ()plus لجمع العدد 7 مع الحرف 'a': fun main(args: ...

المكرِّرات Iterators في بايثون

لعلّك لاحظت أن بالإمكان المرور على عناصر معظم الكائنات الحاوية (container objects) (مثل القوائم والقواميس والسلاسل النصية وغيرها...) باستخدام عبارة for: for element in [1, 2, 3]:     print(element) for element in (1, 2, 3):     print(element) for key in {'one':1, 'two':2}:     print(key) for char in "123":     print(char) for line in open("myfile.txt"):     print(line, end='') تستدعي عبارة for خلف الكواليس الدالة iter()‎ على الكائن الحاوي، فتعيد الدالة كائن تكرار (iterator object) يعرّف التابع ‎__next__‎()‎ الذي يستطيع الوصول إلى عنصر واحد في الكائن الحاوي ...

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

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

الأصناف الواسعة (Large Classes)

توصيف المشكلة احتواء الصنف (class) العديدَ من الحقول (fields) والتوابع (methods) وشيفرةً بأسطرَ كثيرةٍ. أسبابها تبدأ الأصناف صغيرةً ليزداد حجمها مع استمرار تطوُّر البرنامج (كما الحال بالتوابع الطويلة) لأنَّ المبرمج يرى أنَّ إضافة ميِّزاتٍ (features) جديدةٍ في صنفٍ موجودٍ مسبقًا أكثر سهولةً من إنشاء أصنافٍ جديدةٍ مخصَّصةٍ لها. وما الحل؟ الحل بسيطٌ جدًا؛ وهو تقسيم الصنف، وذلك بإحدى الوسائل الآتية: إنشاء صنفٍ جديدٍ (Extract Class) إن كان من الممكن فصلُ بعض مهامّ الصنف الحاليّ ونقلها للصنف الجديد. إنشاء صنفٍ فرعيٍّ ...

دفع التابع لأسفل (Push Down Method)

المشكلة هل السلوك المُنفَّذ في الصنف الأب مُستخدمٌ في صنف فرعي واحد فقط (أو أكثر)؟ الحل نقل هذا السلوك إلى الأصناف الفرعية. مثال قبل إعادة التصميم التابع ()getFuel الموجود في الصنف Unit الأب مُستخدم في صنف فرعي واحد فقط الذي هو Tank: التابع الموجود في الصنف الأب مُستخدم في صنف فرعي واحد فقط. بعد إعادة التصميم نقل التابع ()getFuel من الصنف الأب إلى الصنف الفرعي المستخدم فيه: نقل هذا التابع إلى الصنف الفرعي الذي يُستخدم فيه. لم إعادة التصميم؟ في ...

التابع ‎‎.map()‎‎ في jQuery

‎.map( callback )‎ القيم المعادة يعيد كائنًا من النوع jQuery. الوصف يمرِّر هذا التابع كل عنصر من عناصر المجموعة الحالية إلى دالة، وينشئ كائنًا جديدًا من النوع jQuery يحتوي على القيم المعادة. ‎.map( callback )‎ أُضيف مع الإصدار: 1.2. callback دالة من الشكل Function( Number index, Element domElement )‎ التي ستُستدعى لكل عنصر في المجموعة الحالية. إن أردت معالجة مصفوفة أو كائن مجرد، فاستعمل jQuery.map()‎ بدلًا من هذا التابع. لما كانت القيمة المعادة كائنًا مجردًا يحتوي على مصفوفة، فمن الشائع ...

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