نتائج البحث

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

التابع Module.class_variable_get‎ في روبي

يعيد التابع class_variable_get قيمة متغير الصنف المعطى (أو يطلق الاستثناء NameError). يجب تضمين الجزء @@ من اسم المتغير بالنسبة لمتغيرات الصنف العادية. تُحوّل المعاملات النصية إلى رموز. البنية العامة class_variable_get(symbol) → obj class_variable_get(string) → obj‎ المعاملات symbol‎ رمز يمثل متغير الصنف. string‎ سلسلة نصية تمثل متغير الصنف. القيمة المعادة تعاد قيمة متغير الصنف المعطى. أمثلة مثال على استخدام التابع class_variable_get‎: class Fred @@foo = 99 end Fred.class_variable_get(:@@foo) #=> 99‎ انظر أيضا التابع class_variable_defined?‎: يتحقق إن كان متغير الصنف (class variable) ...

التابع Module.‎class_variable_defined?‎‎ في روبي

يتحقق التابع class_variable_defined?‎ إن كان متغير الصنف (class variable) المعطى مٌعرّفا في الكائن الذي استُدعي معه. تُحوّل المعاملات النصية إلى رموز. البنية العامة class_variable_defined?(symbol) → true or false class_variable_defined?(string) → true or false‎ المعاملات symbol‎ رمز يمثل متغير الصنف. string‎ سلسلة نصية تمثل متغير الصنف. القيمة المعادة تعاد القيمة true إن كان متغير الصنف المعطى مٌعرّفا في الكائن المعطى، وإلا فستُعاد false. أمثلة مثال على استخدام التابع class_variable_defined?‎: class Fred @@foo = 99 end Fred.class_variable_get(:@@foo) #=> 99 انظر ...

الكائنات في PHP

تهيئة الكائن لإنشاء كائن جديد، استخدم التعبير البرمجي new لتهيئة كائن من صنفٍ ما (class): <?php class foo { function do_foo() { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); ?> راجع فصل الأصناف والكائنات (Classes and Objects) للمزيد من المعلومات. التحويل إلى كائن إذا حوّلنا كائنًا إلى كائنٍ آخر فلن يُعدَّل فيه شيء، أما إذا حولنا قيمةً من أي نوعٍ آخر إلى كائن، فستُنشَأ نسخةً جديدةً من ...

الكائنات في PHP

تهيئة الكائن لإنشاء كائن جديد، استخدم التعبير البرمجي new لتهيئة كائن من صنفٍ ما (class): <?php class foo { function do_foo() { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); ?> راجع فصل الأصناف والكائنات (Classes and Objects) للمزيد من المعلومات. التحويل إلى كائن إذا حوّلنا كائنًا إلى كائنٍ آخر فلن يُعدَّل فيه شيء، أما إذا حولنا قيمةً من أي نوعٍ آخر إلى كائن، فستُنشَأ نسخةً جديدةً من ...

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

المهام الفرعية (Threads، وتدعى "الخيوط" أيضًا) هي الطريقة التي تنفذ بها روبي البرمجة المتزامنة (concurrent programming). البرامج التي تتطلب تنفيذ عدة مهام فرعية يمكنها استخدام الصنف Thread. على سبيل المثال، يمكننا إنشاء مهمة فرعية جديدة منفصلة عن المهمة الرئيسية باستخدام التابع new. thr = Thread.new { puts "Whats the big deal" }‎ ثم يمكننا إيقاف تنفيذ المهمة الفرعية الرئيسية مؤقتًا إلى حين إنتهاء المهمة الفرعية خاصتنا باستخدام التابع join: thr.join #=> "Whats the big deal"‎ في حال عدم استدعاء التابع join قبل ...

التعابير في PHP

تعدّ التعابير إحدى الوحدات البنائية الأكثر أهمية في PHP، ففي هذه اللغة كل ما تكتبه تقريبًا هو عبارة عن تعبير، لذا فإن أبسط وأدقّ تعريف للتعابير هو: "كلّ ما يمتلك قيمة". تعدّ الثوابت والمتغيرات أبسط أشكال التعابير، فعند كتابة ‎$a=5 فإننا نسند '5' إلى ‎$a. ومن الواضح أن '5' تمتلك القيمة 5، أو بعبارة أخرى فإن '5' هي تعبير قيمته 5. (في هذه الحالة '5' هو عدد صحيح ثابت). بعد إجراء عملية الإسناد هذه فإن المتوقع هو أن تكون قيمة ...

التعابير في PHP

تعدّ التعابير إحدى الوحدات البنائية الأكثر أهمية في PHP، ففي هذه اللغة كل ما تكتبه تقريبًا هو عبارة عن تعبير، لذا فإن أبسط وأدقّ تعريف للتعابير هو: "كلّ ما يمتلك قيمة". تعدّ الثوابت والمتغيرات أبسط أشكال التعابير، فعند كتابة ‎$a=5 فإننا نسند '5' إلى ‎$a. ومن الواضح أن '5' تمتلك القيمة 5، أو بعبارة أخرى فإن '5' هي تعبير قيمته 5. (في هذه الحالة '5' هو عدد صحيح ثابت). بعد إجراء عملية الإسناد هذه فإن المتوقع هو أن تكون قيمة ...

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

(PHP 4 >= 4.0.4, PHP 5, PHP 7) تتحقّق الدالة is_null()‎‎‎‎‎‎‎‎ إذا ما كانت قيمة المتغيّر هي عَدَم NULL. الوصف bool is_null ( mixed $var ) تتحقّق من أنّ قيمة المتغيّر المُعطى هي NULL. المعاملات var القيمة المطلوب التّحقّق منها. القيم المعادة تُعيد القيمة TRUE إن كان المتغيّر NULL، و FALSE فيما عدا ذلك. أمثلة المثال 1: أمثلة على الدالة is_null()‎ <?php error_reporting(E_ALL); $foo = NULL; var_dump(is_null($inexistent), is_null($foo)); ?> ينتج عن المثال السّابق ما يلي: Notice: Undefined variable: inexistent in ... bool(true) bool(true) انظر أيضًا النّوع NULL. الدالة ...

التابع Module.class_variable_set‎ في روبي

يضبط التابع class_variable_set قيمة متغير الصنف المحدد بالمعامل المُمرَّر ويحيل إليه قيمة محدَّدة. إذا تم تمرير اسم متغير الصنف كسلسلة نصية، فستُحوّل تلك السلسلة إلى رمز. البنية العامة class_variable_set(symbol, obj) → obj class_variable_set(string, obj) → obj‎ المعاملات symbol‎ رمز يمثل متغير الصنف. obj‎ قيمة الكائن المراد تعيينها إلى متغير الصنف. string‎ سلسلة نصية تمثل متغير الصنف. القيمة المعادة يعاد الكائن obj‎ المعطى. أمثلة مثال على استخدام التابع class_variable_set‎: class Fred @@foo = 99 def foo @@foo ...

المعامل ‎[]=‎‎ الخاص بالصنف Thread في روبي

يعيّن المعامل [] عندما يُستدعى بالشكل thr[sym] = obj قيمة المتغير sym محلي الليف (fiber-local variable)، باستخدام إما الرمز أو السلسلة النصية obj أو ينشئها. ويسمى آنذاك معامل تعيين الخاصيات. بالنسبة للمتغيرات محلية المهمة الفرعية (thread-local variables)، يرجى الاطلاع على thread_variable_set و thread_variable_get. البنية العامة thr[sym] = obj→ obj‎ القيمة المعادة تعاد قيمة المتغير محلي الليف (fiber-local variable) بعد تعيينها إلى القيمة obj. انظر أيضًا المعامل []: يُعيد قيمة متغير محلي الليف fiber) local variable، أو الليف الأصلي للمهمة الفرعية الحالية ...

for...of في JavaScript

التعبير البرمجي for...of يمر على الكائنات التي يمكن الدوران على عناصرها (iterable objects) بما في ذلك الكائن Array و Map و Set و String و TypedArray و Arguments، وتنفيذ تعابير برمجية معيّنة على قيمة كل خاصية من خاصيات تلك الكائنات. البنية العامة for (variable of iterable) { statement } variable ستُنسَد قيمة الخاصية مختلفة لهذا المتغير في كل دورة. iterable خاصيات الكائن القابلة للدوران (iterable properties). الوصف الفرق بين حلقتَي التكرار for...of و for...in التعبيران البرمجيان for...in و for...of يُستخدَمان للدوران ...

دوال التعامل مع المتغيرات في PHP

توفِّر هذه الدوال معلوماتٍ إضافيةً عن المتغيرات، راجع صفحة المتغيرات للمزيد من المعلومات عنها. boolval()‎ إعطاء  القيمة المنطقيّة لمتغيّر ما. doubleval()‎ هي اسم بديل (alias) للدالة floatval()‎. floatval()‎ إعطاء قيمة من نوع عدد عشري (float) لمتغيّر ما. get_defined_vars()‎ إعادة مصفوفة تحتوي على كل المتغيّرات المُعرَّفة. get_resource_type()‎ إعادة نوع المورد المُعطى لها. gettype()‎ إعادة نوع المتغيّر. intval()‎ إعادة قيمة من نوع عدد صحيح (integer) لمتغيّر ما. is_array()‎ التّحقّق ما إذا كان المتغيّر مصفوفةً. is_bool()‎ التّحقّق ما إذا كان المتغيّر قيمةً منطقيةً (boolean). is_callable()‎ التّحقّق من القدرة على استدعاء ...

البنية print‎ في PHP

(PHP 4, PHP 5, PHP 7) تطبع print‎ سلسلةً نصيةً. الوصف int print ( string $arg ) تُخرِج print‎‎ المعامل arg. ليست print في الواقع دالةً حقيقية إنما هي بنيةٌ من بنى اللغة (language construct)، لذلك لا حاجة لاستخدام الأقواس لتمرير الوسائط إليها. الاختلافان الرئيسيّان مع البنية echo هما أنَّ print لا تقبل إلا معاملًا واحدًا وأنها تعيد القيمة 1 دائمًا. المعاملات arg البيانات المدخلة. القيم المعادة تعيد 1 دائمًا. الأمثلة مثال 1: أمثلة على البنية print <?php print("Hello World"); print "print() also ...

التابع Thread.thread_variable?‎‎ في روبي

يتحقق التابع thread_variable?‎ إن كانت السلسلة النصية أو الرمز المعطى موجودًا كمتغير محلي للمهمة الفرعية (thread-local variable). لاحظ أنَّ هذه المتغيرات ليست متغيرات محلية الألياف (fiber local variables). يرجى الاطلاع على صفحة المعامل [] والتابع thread_variable_get لمزيد من التفاصيل. البنية العامة thread_variable?(key)→ true or false‎ المعاملات key‎ سلسلة نصية أو رمز. القيمة المعادة تعاد القيمة true إن كانت السلسلة النصية أو الرمز key المعطى موجودًا كمتغير محلي للمهمة الفرعية (thread-local variable)، وإلا فستعاد القيمة false. أمثلة مثال على استخدام التابع thread_variable?‎: ...

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

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

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

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

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

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

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

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

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

(PHP 4, PHP 5, PHP 7) تُحدِّد الدالة empty()‎ إذا كان المتغير فارغًا. الوصف bool empty ( mixed $var ) الدالة empty()‎ تتحقق من أنَّ المتغير يُعدّ فارغًا، ويعدّ المتغير فارغًا إذا كان غير موجودٍ أو يساوي القيمة NULL، الدالة empty()‎ لا تولد تحذيرًا إذا لم يكن المتغير معرفًا. المعاملات var المتغير الذي نريد اختبار قيمته إن كان فارغةً أم لا. ملاحظة: سابقاً في PHP 5.5، لم تكن تدعم الدالةempty()‎إلا المتغيرات فقط وتمرير أي شيًء آخر سوف يؤدي إلى خطأ من ...

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

(PHP 4, PHP 5, PHP 7) تُحدِّد الدالة empty()‎ إذا كان المتغير فارغًا. الوصف bool empty ( mixed $var ) الدالة empty()‎ تتحقق من أنَّ المتغير يُعدّ فارغًا، ويعدّ المتغير فارغًا إذا كان غير موجودٍ أو يساوي القيمة NULL، الدالة empty()‎ لا تولد تحذيرًا إذا لم يكن المتغير معرفًا. المعاملات var المتغير الذي نريد اختبار قيمته إن كان فارغةً أم لا. ملاحظة: سابقاً في PHP 5.5، لم تكن تدعم الدالةempty()‎إلا المتغيرات فقط وتمرير أي شيًء آخر سوف يؤدي إلى خطأ من ...

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

يبحث المعامل ‎=~‎ عن تطابق تعبير نمطي ضمن سلسلة نصية. البنية العامة rxp =~ str → integer or nil‎ إذا تم استخدام المعامل ‎=~‎ مع تعبير نمطي حرفي له التقاطات مسماة (named captures)، فسيتم تعيين السلاسل الملتقطة (أو القيمة nil) في متغيرات محلية تحمل نفس أسماء الالتقاطات: /(?<lhs>\w+)\s*=\s*(?<rhs>\w+)/ =~ " x = y " p lhs #=> "x" p rhs #=> "y" إذا لم تكن هناك مطابقة، ستُعطى لتلك المتغيرات القيمة nil: /(?<lhs>\w+)\s*=\s*(?<rhs>\w+)/ =~ " ...

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

(PHP 4, PHP 5, PHP 7) تُحدِّد الدالة isset()‎ ما إذا كان المتغير معرفًا وليس NULL. الوصف bool isset ( mixed $var [, mixed $... ] ) إذا ألغي تعريف أحد المتغيرات باستخدام الدالة unset()‎، فسوف يؤدي ذلك إلى إلغاء وجوده كليًا من السكربت، ويمكن استخدام الدالة isset للتحقق من وجود المتغير وستُعاد قيمة false عند فحص المتغير الذي يحمل القيمة NULL ،ونلاحظ أيضاً أن القيمة الحرفية الفارغة ("0\"، التي تسمى null character) لا تكافئ القيمة الثابتة NULL في PHP. ويمكن ...

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

(PHP 4, PHP 5, PHP 7) تُحدِّد الدالة isset()‎ ما إذا كان المتغير معرفًا وليس NULL. الوصف bool isset ( mixed $var [, mixed $... ] ) إذا ألغي تعريف أحد المتغيرات باستخدام الدالة unset()‎، فسوف يؤدي ذلك إلى إلغاء وجوده كليًا من السكربت، ويمكن استخدام الدالة isset للتحقق من وجود المتغير وستُعاد قيمة false عند فحص المتغير الذي يحمل القيمة NULL ،ونلاحظ أيضاً أن القيمة الحرفية الفارغة ("0\"، التي تسمى null character) لا تكافئ القيمة الثابتة NULL في PHP. ويمكن ...

الدوال المجهولة في PHP

الدوال المجهولة (anonymous functions) التي تُعرَف أيضًا بالمصطلح (closures) تسمح بإنشاء دالة ليس لها اسم محدد. غالبًا ما تستخدم هذه الدوال للحصول على قيمتها كمعاملات استدعاء (راجع callback) ولها استخدامات أخرى. تطبق اللغة الصنف Closure لاستخدام الدوال المجهولة. المثال 1: الدوال المجهولة <?php echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world'); // outputs helloWorld ?> يمكن استخدام الدوال المجهولة كقيم للمتغيرات، وتحول اللغة مثل هذه التعبيرات إلى نسخ instances من الصنف الداخلي Closure. يمكن إسناد الدالة المجهولة إلى متغير بنفس ...

الدوال المجهولة في PHP

الدوال المجهولة (anonymous functions) التي تُعرَف أيضًا بالمصطلح (closures) تسمح بإنشاء دالة ليس لها اسم محدد. غالبًا ما تستخدم هذه الدوال للحصول على قيمتها كمعاملات استدعاء (راجع callback) ولها استخدامات أخرى. تطبق اللغة الصنف Closure لاستخدام الدوال المجهولة. المثال 1: الدوال المجهولة <?php echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world'); // outputs helloWorld ?> يمكن استخدام الدوال المجهولة كقيم للمتغيرات، وتحول اللغة مثل هذه التعبيرات إلى نسخ instances من الصنف الداخلي Closure. يمكن إسناد الدالة المجهولة إلى متغير بنفس ...

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

(PHP 4, PHP 5, PHP 7) تدمر الدالة session_destroy()‎ جميع البيانات المُسجلة في الجلسة. الوصف bool session_destroy ( void ) تُدمر الدالة جميع البيانات المُصاحبة للجلسة الحالية. ولا تقوم بمسح أيًا مِن المُتغيرات العامة (global variables) أو ملفات تعريف الارتباط للدالة. ولاستخدام المُتغيرات مُجددًا، يجب استخدام الدالة ()session_start. ملاحظة:  لست مضطرًا لاستدعاء الدالة session_destroy()‎ في الكود العادي. نظف المصفوفة ‎$_SESSION بدلًا مِن تدمير بيانات الجلسة. لتدمير الجلسة كلها يجب مسح معرّف الجلسة وإذا كان محفوظًا في ملف تعريف الارتباط، يجب مسحه كذلك، ويُمكن استعمال ...

التصريح عن المتغيّرات في TypeScript

التصريح عن المتغيّرات (Variable Declarations) الكلمتان المفتاحيتان ‎let‎ و‎const‎ نوعان جديدان من طرق التصريح عن المتغيرات في لغة JavaScript. الكلمة المفتاحية let مُشابهة للكلمة المفتاحية var من عدّة نواحي، لكنّ let تسمح للمُطورين بتجنب بعض المشاكل التي تحدث عادةً في لغة JavaScript. أمّا const فهي طريقة لمنع إعادة تعيين القيم للمتغيرات. ولأنّ TypeScript مجموعة عليا من JavaScript، فاللغة تدعم ‎let‎ و‎const‎. وسنشرح طرق التصريح عن المتغيرات هذه ولمَ يُفضّل استعمالها عوضًا عن ‎var‎. إن كانت لديك خبرة قليلة في لغة ...

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

يعدُّ الصنف Object الجذر الافتراضي لكل كائنات روبي. يَرِث الصنف Object من الصنف BasicObject ما يسمح بإنشاء تسلسلات هرمية بديلة للكائن. تُتاح توابع الكائن لكل الأصناف ما لم يتم تجاهلها (overridden) صراحةً. تندمج الوحدة Kernel ضمن الصنف Object ما يعطي الوصول العام (global) للدّوال المبنية ضمنيًّا في الوحدة. رغم أنَّ توابع النسخة المنشأة من الصنف Object معرَّفةٌ عن طريق الوحدة Kernel، رأينا أن نوثّقهم هنا لمزيد من الوضوح. عند الإشارة (referencing) إلى الثوابت في الأصناف الوارثة من الصنف Object، لا ...

المعامل >> في أردوينو

يزيح المعامل >> البتات الواقعة على يساره إلى اليسار عددًا محدَّدًا من الخانات مساويًا للقيمة الموجودة على يمينه. البنية العامة variable << number_of_bits; المعاملات variable القيمة العددية الثنائية المراد إزاحة البتات فيها عددًا محدَّدًا من الخانات. أنواع البيانات المسموح بها هي: بايت، وعدد صحيح، وعدد طويل. number_of_bits عددٌ صحيحٌ يمثِّل مقدار الإزاحة التي ستُطبَّق على العدد variable. يجب أن تكون قيمة هذا المعامل <= 32. أمثلة مثالٌ على استعمال المعامل >>: int a = 5; ...

الكلمة const المفتاحية في أردوينو

الكلمة const المفتاحية هي اختصارٌ للكلمة «ثابت» (constant)، وهي مقيِّدةٌ للمتغيرات التي تٌستعمَل معها، إذ تعدِّل سلوك المتغير لتجعله في وضع «القراءة فقط» (read-only). هذا يعني أنَّه يمكن استعمال المتغير بشكل ممثال للمتغيرات التي من نفس نوعه باستثناء عدم القدرة على تغيير القيمة التي أُسندَت إليه عند إنشائه. ستواجه خطأً من المُصرِّف إن حاولت إسناد قيمةٍ لمتغيرٍ استُعملَت الكلمة المفتاحية const معه. تمتثل الثوابت المعرَّفة باستعمال الكلمة المفتاحية const لقواعد مجال المتغير (variable scoping) التي تضبط بقية المتغيرات. مع أخذ ...

تقنيات إعادة التصميم (Refactoring Techniques)

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

المعامل []‎ الخاص بالصنف Thread في روبي

يعدُّ المعامل [] مرجعًا للخاصيات (Attribute Reference)، إذ يُعيد قيمة متغير محلي الليف fiber) local variable، أو الليف الأصلي للمهمة الفرعية الحالية إن لم يكن المتغير موجودًا داخل ليف) باستخدام إما رمز أو سلسلة نصية. إن لم يكن المتغير المعطى (انظر فقرة البنية العامة) موجودًا، فستعاد nil. [ Thread.new { Thread.current["name"] = "A" }, Thread.new { Thread.current[:name] = "B" }, Thread.new { Thread.current["name"] = "C" } ].each do |th| th.join puts "#{th.inspect}: #{th[:name]}" end‎ هذا سوف ينتج: ...

المبالغة والإطالة (Bloaters)

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

المبالغة والإطالة (Bloaters)

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

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

الصنف Module هو مجموعة من التوابع والثوابت. التوابع الموجودة في الوحدات Module قد تكون إما توابع نسخة (instance methods)، أو توابع وحدة (module methods). توابع النسخة تظهر كتوابع في صنفٍ عند تضمين الوحدة، وذلك على خلاف توابع الوحدة. وعلى النقيض، يمكن استدعاء توابع الوحدة دون إنشاء كائن يُغلفها، بينما قد لا يمكن فعل ذلك مع توابع النسخة. انظر صفحة module_function. في الأمثلة الموجودة في صفحات التوابع، يشير المعامل sym إلى رمز، والذي قد يكون إما سلسلة نصية، أو كائنًا من النوع ...

استخراج التوابع (Extract Methods)

المشكلة وجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. الحل نقل الشيفرة إلى تابعٍ (method) أو دالةٍ (function) جديدة والاستعاضة عن الجزء (بمكانه السابق) باستدعاءٍ لهذا التابع الجديد. مثال قبل إعادة التصميم نلاحظ وجود جزء من الشيفرة لطباعة بعض البيانات (التفاصيل)، والتي يمكن عزلها بتابعٍ جديد، الشيفرة قبل إعادة التصميم بالشكل: في لغة Java: void printOwing() { printBanner(); // طباعة التفاصيل System.out.println("name: " + name); System.out.println("amount: " + getOutstanding()); } في لغة #C: void PrintOwing() { PrintBanner(); ...

التابع Object.instance_variable_get في روبي

يجلب التابع instance_variable_get قيمة مُتغيِّر النسخة (instance variable) المُمرَّر إليه من الكائن المعطى، أو يُعيد قيمةً عدميّةً nil إذا كان المتغيِّر غير معيَّن في ذلك الكائن. يجب أن يحتوي اسم المُتغيِّر على الرمز @ في حال كان من متغيرات النسخة النظامية (regular instance variables). يُرمى الاستثناء NameError إذا كان الرَّمز المُعطى غير معرَّفٍ على أنَّه اسمٌ لمتغيِّر نسخة. تُحوَّل الوسائط النّصية المُمرَّرة إلى التابع إلى رموز. البنية العامة instance_variable_get(symbol) → obj instance_variable_get(string) → obj المعاملات symbol الرمزُ المراد جلب قيمته في ...

التابع Thread.thread_variable_get‎ في روبي

يُعيد التابع thread_variable_get قيمة المتغير المحلي للمهمة الفرعية (thread local variable) الذي تم تعيينه. لاحظ أنَّ هذه المتغيرات تختلف عن القيم محلية الألياف (fiber local values). بالنسبة للقيم محلية الألياف، يرجى الاطلاع على المعاملين [] و ‎[]=‎. تُحمل القيم محلية المهمة الفرعية مع المهام الفرعية، وذلك على خلاف الألياف. البنية العامة thread_variable_get(key) → obj or nil‎ المعاملات key‎ سلسلة نصية أو رمز. القيمة المعادة تعاد قيمة المتغير المحلي للمهمة الفرعية الذي تم تعيينه. أمثلة مثال على استخدام التابع thread_variable_get‎: Thread.new ...

البنية echo في PHP

(PHP 4, PHP 5, PHP 7) تعرض ‎echo سلسلةً نصيةً وحيدة أو عدة سلاسل نصية. الوصف void echo ( string $arg1 [, string $... ] ) تُخرِج echo كل المعاملات، ولا تضيف إليها سطرًا جديدًا بعدها. لا تعدّ echo دالةً بالمعنى الصريح للكلمة إذ تُعد بنيةً من بنى اللُّغة (‎language construct) لذلك فلستَ مجبرًا على إضافة الأقواس لها. على العكس من بنى اللُّغة الأخرى، فإن echo لا تتصرف مثل الدوال لذلك لا يمكن استخدامها في سياق الدوال دائمًا. إذا أردنا استعمال ...

مشغّل المهام Envoy في Laravel

مقدمة يوفّر Laravel Envoy صياغة نظيفة ومختزلة لتعريف المهام الشائعة وتشغيلها على الخوادم البعيدة (remote servers)، ويمكنك إعداد المهام بسهولة باستخدام صياغة نمط Blade للنشر، أوامر Artisan وغيرها. ويدعم Envoy في الوقت الحالي أنظمة تشغيل لينكس و ماك فقط. التثبيت ثبّت أولًا Envoy باستخدام أمر global require الخاص بالأمر Composer: composer global require laravel/envoy قد تتسبب مكتبات Composer العامة (global) في بعض الأحيان في حدوث تعارضات في الحزم، يمكنك في هذه الحالة استخدام مكتبة cgr والذي يعد بديلًا للأمر composer global ...

مشغّل المهام Envoy في Laravel

مقدمة يوفّر Laravel Envoy صياغة نظيفة ومختزلة لتعريف المهام الشائعة وتشغيلها على الخوادم البعيدة (remote servers)، ويمكنك إعداد المهام بسهولة باستخدام صياغة نمط Blade للنشر، أوامر Artisan وغيرها. ويدعم Envoy في الوقت الحالي أنظمة تشغيل لينكس و ماك فقط. التثبيت ثبّت أولًا Envoy باستخدام أمر global require الخاص بالأمر Composer: composer global require laravel/envoy قد تتسبب مكتبات Composer العامة (global) في بعض الأحيان في حدوث تعارضات في الحزم، يمكنك في هذه الحالة استخدام مكتبة cgr والذي يعد بديلًا للأمر composer global ...

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

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

إزالة الإسناد إلى المعاملات (Remove Assignments to Parameters)

المشكلة إسناد قيمةٍ ما إلى أحد المعاملات (parameter) داخل التابع (method body). الحل استخدام متغيِّرٍ محليٍّ (local variable) بدلًا من المعامل. مثال قبل إعادة التصميم نلاحظ وجود عمليّة إسنادٍ (من بعد الإنقاص بمقدار 2) إلى معامل التابع الوارد باسم inputVal: في لغة Java: int discount(int inputVal, int quantity) { if (inputVal > 50) { inputVal -= 2; } //... } في لغة #C: int Discount(int inputVal, int quantity) { if (inputVal > 50) ...

الكلمات المفتاحية (Keywords) والمعاملات (Operators) في لغة Kotlin

 الكلمات المفتاحيّة الثابتة (Hard Keywords) تُعدُّ الكلمات الآتية كلماتٍ مفتاحيّةً في لغة Kotlin وليس ممكنًا استخدامها كمُعرِّفات (identifiers): as تُستخدَم في التحويلات ما بين الأنواع (typecasts) تُحدِّد تسميةً بديلةً (alias) عند عملية الاستيراد (import) as?‎ للتحويلات الحافظة للنوع (safe type casts) break لإنهاء تنفيذ الحلقات (loops) class للتصريح عن الأصناف continue  للاستمرار بالخطوة التالية لأقرب حلقة محيطة (enclosing) do للبدء بحلقة do/while (والتي يُختبَر الشرط فيها لاحقًا) else لتعريف فرعٍ (branch) من تعبير الشرط if والذي سيُنفَّذ عندما يكون الشرط بالقيمة false false ...

الأنواع المُعمَّمة في TypeScript

مقدمة بناء مكونات ذات واجهات برمجية متناسقة وثابتة من أسس هندسة البرمجيات، وجعل هذه المكونات قابلةً لإعادة الاستعمال من أحد أكبر أسُسِها كذلك. المكونات التي يُمكنها العمل مع بيانات اليوم كما بيانات المُستقبل ستُعطي إمكانيات مرنةً جدًّا لبناء نظم برمجيات كبيرة. الأنواع المُعمّمة (generics) من الأدوات الرئيسية التي تُساعد على بناء مكوّنات قابلة لإعادة الاستعمال في لغات مثل C#‎ وJava، إذ تُعطي القُدرة على إنشاء مكوّنات يُمكن لها العمل مع عدّة أنواعٍ من البيانات عوضًا عن نوع واحد فقط. ما ...

المتغيرات من مصادر خارجية في PHP

نماذج HTML‏ (GET و POST) عند إرسال نموذج إلى شيفرة PHP، فإن المعلومات القادمة من ذاك النموذج تصبح متاحةً بصورة تلقائية للشيفرة. وهناك عدد من الطرائق التي يمكن من خلالها الوصول إلى هذه المعلومات. المثال 1: نموذج HTML بسيط <form action="foo.php" method="post"> Name: <input type="text" name="username" /><br /> Email: <input type="text" name="email" /><br /> <input type="submit" name="submit" value="Submit me!" /> </form> منذ الإصدار 5.4.0، أصبح هناك طريقتان للوصول إلى البيانات التابعة ...

المتغيرات من مصادر خارجية في PHP

نماذج HTML‏ (GET و POST) عند إرسال نموذج إلى شيفرة PHP، فإن المعلومات القادمة من ذاك النموذج تصبح متاحةً بصورة تلقائية للشيفرة. وهناك عدد من الطرائق التي يمكن من خلالها الوصول إلى هذه المعلومات. المثال 1: نموذج HTML بسيط <form action="foo.php" method="post"> Name: <input type="text" name="username" /><br /> Email: <input type="text" name="email" /><br /> <input type="submit" name="submit" value="Submit me!" /> </form> منذ الإصدار 5.4.0، أصبح هناك طريقتان للوصول إلى البيانات التابعة ...

عوامل المقارنة في PHP

تتيح عوامل المقارنة -كما هو واضح من اسمها- مقارنة قيمتين مختلفتين. يمكنك أيضًا الاطلاع على جداول مقارنة الأنواع حيث ستجد العديد من الأمثلة المرتبطة بإجراء المقارنات بين الأنواع. مثال الاسم النتيجة ‎$a == $b يساوي TRUE إن كان المتغير ‎$a مساويًا للمتغير ‎$b بعد تعديل الأنواع. ‎$a === $b مطابق TRUE إن كان ‎$a مساويًا للمتغير ‎$b، وكانا من النوع نفسه. ‎$a != $b لا يساوي TRUE إن كان ‎$a غير مساوٍ للمتغير ‎$b بعد تعديل الأنواع. ‎$a <> $b لا ...

عوامل المقارنة في PHP

تتيح عوامل المقارنة -كما هو واضح من اسمها- مقارنة قيمتين مختلفتين. يمكنك أيضًا الاطلاع على جداول مقارنة الأنواع حيث ستجد العديد من الأمثلة المرتبطة بإجراء المقارنات بين الأنواع. مثال الاسم النتيجة ‎$a == $b يساوي TRUE إن كان المتغير ‎$a مساويًا للمتغير ‎$b بعد تعديل الأنواع. ‎$a === $b مطابق TRUE إن كان ‎$a مساويًا للمتغير ‎$b، وكانا من النوع نفسه. ‎$a != $b لا يساوي TRUE إن كان ‎$a غير مساوٍ للمتغير ‎$b بعد تعديل الأنواع. ‎$a <> $b لا ...

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

تُضمَّن الوحدة Kernel من طرف الصنف Object، لذلك فتوابعها متاحة في كل كائنات روبي. توابع نسخ الصنف Kernel مُوثّقة في صفحة الصنف Object، أما توابع الوحدة Kernel فهي مُوثقة هنا. تستدعى هذه التوابع بدون مستقبل (receiver)، وبالتالي يمكن استدعاؤها وفق الشكل الدالي: sprintf "%.1f", 1.234 #=> "1.2" توابع الصنف العامة (Public Class Methods) Array يعيد المعامل الممرَّر إليه على شكل مصفوفة (Array). Complex يعيد ناتج التعبير x + i * y؛ حيث i هو الوحدة التخيلية للعدد العقدي. Float Hash يعيد ناتج التعبير x + ...

الكلمة PROGMEM المفتاحية في أردوينو

تُستعمَل الكلمة PROGMEM المفتاحية مع المتغيرات عندما يراد تخزين بياناتها في ذاكرة البرنامج (الذاكرة flash) بدلًا من تخزينها في الذاكرة SRAM. لمزيد من المعلومات حول أنواع الذاكرة المتاحة في أردوينو، اطلع على هذه الصفحة. تصنَّف الكلمة PROGMEM المفتاحية ضمن «مقيدات المتغيرات» (variable qualifier)، ويجب استعمالها مع أنواع البيانات المعرَّفة في المكتبة pgmspace.h فقط. تخبر هذه الكلمة المصرَّف بأنَّ يضع بيانات المتغير التي استعملت معه في الذاكرة flash بدلًا من وضعها في الذاكرة SRAM حيث يجب أن تخزَّن بالحالة الطبيعية. الكلمة ...

تبديل المتغير المؤقت إلى استدعاء(Replace Temp with Query)

المشكلة تخزين نتيجة تعبيرٍ ما (expression) في متغيِّر محليٍّ (local variable) لاستخدامه لاحقًا في الشيفرة. الحل نقل التعبير بأكمله إلى تابعٍ (method) مستقلٍ يعيد نتيجته، وعندها سيكون استدعاء هذا التابع بديلًا عن استخدام المتغيِّر (variable)، ومن الممكن أيضًا دمج هذا التابع مع توابع أخرى عند الحاجة للقيام بذلك. مثال قبل إعادة التصميم نلاحظ في الشيفرة الآتية وجود متغيِّرٍ مؤقتٍ باسم basePrice لتخزين القيمة الناتجة عن تنفيذ التعبير الرياضيّ بمعامل الجداء (أي المعامل *)، وسيُستخدَم هذا المتغيِّر لاحقًا في الأجزاء الشرطيّة ...

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

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

المعامل << في أردوينو

يزيح المعامل << البتات الواقعة على يساره إلى اليمين عددًا محدَّدًا من الخانات مساويًا للقيمة الموجودة على يمينه. البنية العامة variable >> number_of_bits; المعاملات variable القيمة العددية الثنائية المراد إزاحة البتات فيها عددًا محدَّدًا من الخانات. أنواع البيانات المسموح بها هي: بايت، وعدد صحيح، وعدد طويل. number_of_bits عددٌ صحيحٌ يمثِّل مقدار الإزاحة التي ستُطبَّق على العدد variable. يجب أن تكون قيمة هذا المعامل <= 32. أمثلة مثالٌ على استعمال المعامل <<: int a = 40; ...

التابع Module.attr_writer‎ في روبي

ينشئ التابع attr_writer تابع وصول (accessor method) للسماح بتعيين قيمة للخاصية symbol.id2name. تحول الوسائط النصية إلى رموز. البنية العامة attr_writer(symbol, ...) → nil attr_writer(string, ...) → nil‎ المعاملات symbol‎ رمز لتحديد الخاصية. string‎ سلسلة نصية لتحديد الخاصية. القيمة المعادة تعاد القيمة nil. انظر أيضا التابع attr: الشكل الأول لهذا التابع مكافئ للتابع attr_reader. أما الشكل الثاني فيكافئ التابع attr_accessor(name)‎. التابع attr_accessor: يحدد خاصية مسماة (named attribute) لهذه الوحدة. التابع attr_reader: ينشئ متغيرات نسخ (instance variables) والتوابع المقابلة التي تعيد قيمة متغيرات النسخ هذه. مصادر قسم التابع ...

التابع Module.module_exec‎ في روبي

يقيّم التابع module_exec الكتلة الممررة في سياق الصنف/الوحدة. التابع المعرف في الكتلة سينتمي إلى المُُستقبِل (receiver). المعاملات المُمررة إلى التابع ستُمرّر كلها إلى الكتلة. يمكن استخدام هذا التابع إذا كانت الكتلة تحتاج إلى الوصول إلى متغيرات النسخة (instance variables). البنية العامة module_exec(arg...) {|var...| block } → obj‎ القيمة المعادة تعاد نتيجة تقييم الكتلة الممررة في سياق الصنف/الوحدة. أمثلة مثال على استخدام التابع module_exec‎: class Thing end Thing.class_exec{ def hello() "Hello there!" end } puts Thing.new.hello()‎ ناتج تنفيذ المثال هو: Hello there! انظر أيضا التابع module_eval: يُقيّم ...

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

(PHP 4 >= 4.0.4, PHP 5, PHP 7) تُعيد الدالة get_defined_vars()‎‎ مصفوفة تحتوي على كل المتغيّرات المُعرَّفة. الوصف array get_defined_vars ( void ) تُعيد هذه الدالة مصفوفة متعدّدة الأبعاد تحتوي على قائمة بكل المتغيّرات المُعرَّفة سواءً من قبل الخادم أو المستخدم ضمن النطاق (scope) الذي تُستدعى ضمنه. القيم المعادة مصفوفة متعدّدة الأبعاد تحتوي على كل المتغيّرات. أمثلة المثال 1: مثال على الدالة get_defined_vars()‎ <?php $b = array(1, 1, 2, 3, 5, 8); $arr = get_defined_vars(); // $b طباعة قيمة المتغيّر print_r($arr["b"]); // PHP طباعة مسار مفسّر // ...

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

(PHP 4, PHP 5, PHP 7) تتحقّق الدالة is_array()‎‎‎‎ إذا ما كان المتغيّر مصفوفةً. الوصف bool is_array ( mixed $var ) تتحقّق هذه الدالة إذا ما كان المتغيّر المُعطى مصفوفةً أم لا. المعاملات var المتغيّر الذي يجري تقييمه. القيم المعادة تُعيد القيمة TRUE إن كان المتغيّر مصفوفة، و FALSE فيما عدا ذلك. أمثلة المثال 1: التحقّق من أنّ المتغيّر مصفوفة <?php $yes = array('this', 'is', 'an array'); echo is_array($yes) ? 'Array' : 'not an Array'; echo "\n"; $no = 'this is a string'; echo is_array($no) ? ...

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

يُطلق الاستثناء NameError عندما يكون الاسم المعطى غير صالح أو غير مُعرّف. انظر إلى السطر البرمجي التالي: puts foo سيُطلق عند تنفيذه الاستثناء التالي: NameError: undefined local variable or method `foo' for main:Object أسماء الثوابت يجب أن تبدأ بحرف كبير، لذلك فالشيفرة البرمجية التالي: Integer.const_set :answer, 42 ستطلق الاستثناء NameError: NameError: wrong constant name answer توابع الصنف العامة (Public Class Methods) new ينشئ استثناءً جديدًا من النوع NameError. توابع النسخة العامة (Public Instance Methods) local_variables يعيد قائمة بأسماء المتغيرات المحلية المُعرّفة حيث أُطلٍق ...

التابع Module.class_exec‎ في روبي

يقيِّم التابع class_exec الكتلة المعطاة في سياق الصنف/الوحدة التي استُدعي معها. التابع المعرف في الكتلة سينتمي إلى المستقبِل (receiver). وستُمرر كل الوسائط المعطاة للتابع إلى الكتلة. يمكن استخدام هذا التابع إذا كانت الكتلة تحتاج إلى الوصول إلى متغيرات النسخ (instance variables). البنية العامة class_exec(arg...) {|var...| block } → obj‎ المعاملات arg...‎ الوسائط المراد تمريرها إلى الكتلة. القيمة المعادة يعاد ناتج تقييم الكتلة المعطاة في سياق الصنف/الوحدة المعطاة. أمثلة مثال على استخدام التابع class_exec‎: class Thing end Thing.class_exec{ def hello() "Hello there!" ...

التابع ?Binding.local_variable_defined في روبي

يتحقق التابعlocal_variable_defined? ‎ إن كان المتغير symbol المحلي موجودًا أم لا. هذا التابع هو النسخة المختصرة للشيفرة التالية: binding.eval("defined?(#{symbol}) == 'local-variable'") البنية العامة local_variable_defined?(symbol) → obj المعاملات symbol المتغير المحلي المراد التحقق من وجوده. القيم المعادة تعاد القيمة true إن كان المتغير symbol المحلي موجودًا، أو القيمة false خلاف ذلك. أمثلة مثال على استخدام التابعlocal_variable_defined? ‎: def foo a = 1 binding.local_variable_defined?(:a) #=> true binding.local_variable_defined?(:b) #=> false end انظر أيضًا التابع eval: يقدر تعابير لغة روبي الممررة إليه في السياق ...

التابع ?Binding.local_variable_defined في روبي

يتحقق التابعlocal_variable_defined? ‎ إن كان المتغير symbol المحلي موجودًا أم لا. هذا التابع هو النسخة المختصرة للشيفرة التالية: binding.eval("defined?(#{symbol}) == 'local-variable'") البنية العامة local_variable_defined?(symbol) → obj المعاملات symbol المتغير المحلي المراد التحقق من وجوده. القيم المعادة تعاد القيمة true إن كان المتغير symbol المحلي موجودًا، أو القيمة false خلاف ذلك. أمثلة مثال على استخدام التابعlocal_variable_defined? ‎: def foo a = 1 binding.local_variable_defined?(:a) #=> true binding.local_variable_defined?(:b) #=> false end انظر أيضًا التابع eval: يقدر تعابير لغة روبي الممررة إليه في السياق ...

التابع Module.attr_reader‎ في روبي

ينشئ التابع attr_reader متغيرات نسخ (instance variables) والتوابع المقابلة التي تعيد قيمة متغيرات النسخ هذه. وهو مكافئ لاستدعاء "attr:name" على كل اسم name بالتتابع. تحول الوسائط النصية إلى رموز. البنية العامة attr_reader(symbol, ...) → nil attr(symbol, ...)→ nil attr_reader(string, ...) → nil attr(string, ...)→ nil‎ المعاملات symbol‎ رمز يمثل الخاصية. string‎ سلسلة نصية تمثل الخاصية. القيمة المعادة تعاد القيمة nil. انظر أيضا التابع attr: الشكل الأول لهذا التابع مكافئ للتابع attr_reader. أما الشكل الثاني فيكافئ التابع attr_accessor. التابع attr_accessor: يحدد خاصية مسماة (named attribute) لهذه ...

المعاملات الرياضية في JavaScript

المعاملات الرياضية (arithmetic operators) تأخذ قيمًا عدديةً وتُعيد قيمةً عدديةً واحدةً، والمعاملات الرياضية القياسية هي الجمع + والطرح - والضرب * والقسمة /. الجمع (+) معامل الجمع يُنتِج مجموع المدخلات الرقمية، أو يضيف سلسلتين نصيتين إلى بعضها. البنية العامة x + y أمثلة // رقم + رقم -> عملية جمع 1 + 2 // 3 // رقم + قيمة منطقية -> عملية جمع true + 1 // 2 // قيمة منطقية + قيمة منطقية -> عملية جمع false + false // 0 // رقم + سلسلة ...

التابع Process.spawn في روبي

يُنفِّذ التابع spawn أمرًا محدَّدًا ثم يعيد مُعرِّف العملية الخاصة به. البنية العامة spawn([env,] command... [,options]) → pid spawn([env,] command... [,options]) → pid يشبه التابعُ spawn التابعَ system باستثناء أنّه لا ينتظر إلى أن ينتهي تنفيذ الأمر. يجب على العملية الأب (parent process) أن تستخدم التابع Process.wait لتحصيل حالة الإنهاء للعملية الفرعية، أو تستخدم Process.detach للإبلاغ بعدم الاهتمام بحالتها؛ خلاف ذلك، قد يُراكم نظام التشغيل عمليات ميتة (zombie processes). التابع spawn لديه مجموعة من الخيارات لتحديد خاصيات العملية: env: hash name => val ...

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

ينفذ التابع spawn تعليمة محددة، ثم يعيد معرفها (pid). البنية العامة spawn([env,] command... [,options]) → pid spawn([env,] command... [,options]) → pid‎ يشبه التابعُ spawn التابعَ system باستثناء أنّه لا ينتظر إلى أن ينتهي تنفيذ الأمر. يجب على العملية الأب (parent process) أن تستخدم التابع Process.wait لتحصيل حالة الإنهاء للعملية الفرعية، أو تستخدم Process.detach لتسجيل عدم الاهتمام بحالتها؛ خلاف ذلك، قد يُراكم نظام التشغيل عمليات ميتة (zombie processes). التابع spawn لديه مجموعة من الخيارات لتحديد خاصيات العملية: env: hash name => ...

الدالة locals()‎ في بايثون

تُحدّث الدّالة locals()‎ قاموسًا يُمثّل جدول الرموز المحليّ (local symbol table) وتُعيده. البنية العامة locals() المعاملات لا توجد مُعاملات. القيمة المعادة قاموس يُمثّل المتغيّرات المحليّة. ملاحظات تُعاد المُتغيّرات الحرّة (free variables) من طرف الدّالة عند استدعائها داخل الدّوال وليس داخل الأصناف. لا يجب تعديل مُحتويات القاموس المُعاد، إذ أنّ التّعديلات قد لا تُؤثّر على المتغيّرات المحليّة والحرّة المُستخدمة من طرف المُفسّر. أمثلة المثال التّالي يوضّح كيفيّة عمل هذه الدّالة: >>> y = 1 # هذا المتغيّر لن يكون محليّا نسبة ...

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

(PHP 4 >= 4.0.6, PHP 5, PHP 7) تتحقّق الدالة is_callable()‎‎‎‎‎‎ من القدرة على استدعاء محتوى المتغيّر كدالة. الوصف bool is_callable ( mixed $var [, bool $syntax_only = FALSE [, string &$callable_name ]] ) تتحقّق هذه الدالة من القدرة على استدعاء محتوى المتغيّر كدالة. يُمكِن لهذه الدالة التحقّق من احتواء متغيّر بسيط على اسم صالح لدالة ما، أو احتواء مصفوفة على كائن مُرمَّز بشكل مناسب واسم دالة ما. المعاملات var القيمة المطلوب التّحقّق منها. syntax_only عندما تكون قيمته TRUE تتحقّق الدالة ...

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

(PHP 4, PHP 5, PHP 7) تطبع الدالة print_r()‎‎‎‎‎‎‎‎‎‎‎‎‎‎ معلومات مقروءة من قبل الإنسان حول متغيّر ما. الوصف mixed print_r ( mixed $expression [, bool $return = FALSE ] ) تعرض الدالة print_r()‎ معلومات حول المتغيّر بطريقة مقروءة من قبل الإنسان. تُظهِر الدوال print_r()‎، و var_dump()‎، و var_export()‎ أيضًا الخصائص المحميّة (protected) والخاصّة (private) للكائنات، ولكنّها لا تُظهِر الأعضاء الثابتة للصنف. المعاملات expression التّعبير المُرَاد طباعته. return نستخدم المُعامِل return إذا كنّا نرغب بالتقاط خرج الدالة print_r()‎. عندما تكون قيمة المُعامِل ...

بنية البرمجة في لغة Kotlin

تعريف الحزم (Package) يُكتب توصيف الحزمة (package) في بداية الملف المصدريّ (source file) بالشكل الآتي: package my.demo import java.util.* // ... ولا يُشترط التوافق ما بين الحزمة (package) والمجلد الذي توجد فيه (directory)، إذ من الممكن أن تتوضع الملفات المصدريّة عشوائيًّا في نظام الملفات. المزيد عن الحزم (packages). تعريف الدوال (Function) إن كانت الدالة بمتحولين من نوع Int وتعيد قيمةً بنوع Int أيضًا، فسيصبح تعريفها بالشكل: fun sum(a: Int, b: Int): Int {   return a + b } أما الشيفرة الآتية فهي لتعريف دالةٍ باسم sum ...

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

(PHP 7 >= 7.1.0) تتحقّق الدالة is_iterable()‎‎ من أنّ محتوى المتغيّر هو قيمة تكراريّة (iterable). الوصف bool is_iterable ( mixed $var ) تتحقّق من أنّ محتوى المتغيّر مقبول بواسطة النّوع الزائف التكراري (iterable pseudo-type)، أي أنّه مصفوفة أو كائن يستخدم الواجهة Traversable. المعاملات var القيمة المطلوب التّحقّق منها. القيم المعادة تُعيد القيمة TRUE إن كان المتغيّر تكراريًّا، و FALSE فيما عدا ذلك. أمثلة المثال 1: أمثلة على الدالة is_iterable()‎ <?php var_dump(is_iterable([1, 2, 3])); // bool(true) var_dump(is_iterable(new ArrayIterator([1, 2, 3]))); // bool(true) var_dump(is_iterable((function ...

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

(PHP 4, PHP 5, PHP 7) تُولِّد الدالة serialize()‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ تمثيلًا قابلًا للتخزين لقيمة ما. الوصف string serialize ( mixed $value ) تُولِّد‎‎‎‎‎‎‎‎‎‎ تمثيلًا قابلًا للتخزين لقيمة ما. يُفيد هذا في تخزين وتمرير قيم PHP بدون خسارة نوعها وبنيتها. نستخدم الدالة unserialize()‎ لإرجاع السلسلة النصّيّة المتسلسلة إلى قيمة PHP مرّة أخرى. المعاملات value القيمة المطلوب جعلها متسلسلة، تتعامل الدالة serialize()‎ مع كافة الأنواع عدا الموارد، بإمكاننا حتى أن نستخدم serialize()‎ على مصفوفات تحتوي على مراجع تُشير إلى هذه المصفوفة. تُخزَّن المراجع الموجودة ...

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

(PHP 4, PHP 5, PHP 7) تُحدِّد الدالة is_object()‎‎‎‎‎‎‎‎‎‎ ما إذا كان المتغيّر كائنًا. الوصف bool is_object ( mixed $var ) تُحدِّد ما إذا كان المتغيّر المُعطى كائنًا. المعاملات var القيمة المطلوب التّحقّق منها. القيم المعادة تُعيد القيمة TRUE إن كان المتغيّر كائنًا، و FALSE فيما عدا ذلك. أمثلة المثال 1: أمثلة على الدالة is_object()‎ <?php // تعريف دالة بسيطة لإعادة مصفوفة من الكائن الموجود لدينا function get_students($obj) { if (!is_object($obj)) { return false; ...

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

(PHP 4 >= 4.0.5, PHP 5, PHP 7) تُحدِّد الدالة is_scalar()‎‎‎‎‎‎‎‎‎‎‎‎ ما إذا كان المتغيّر أوليًا (scalar). الوصف bool is_scalar ( mixed $var ) تُحدِّد ما إذا كان المتغيّر المُعطى أوليًا. المتغيّرات الأولية هي تلك التي تحتوي على عدد صحيح، أو عدد عشري، أو سلسلة نصّيّة، أو قيمة منطقيّة، أمّا الأنواع مصفوفة، وكائن، ومورد ليست قيمًا أولية. ملاحظة: لا تُعامِل الدالة is_scalar()‎ القيم من نوع مورد على أنّها قيم أولية، إذ إنّ الموارد هي نوع بيانات مُجرَّد مُعتمِد حاليًّا على الأعداد ...

التابع Module.attr_accessor‎ في روبي

يحدد التابع attr_accessor خاصية مسماة (named attribute) لهذه الوحدة، إذ يكون الاسم هو نتيجة التعبير symbol.id2name، وينشئ متغير نسخة (@name) وتابع وصول مقابل له (access method) لقراءته. ينشئ أيضًا تابعًا يُسمى ‎name=‎ لتعيين الخاصية. تحول الوسائط النصية إلى رموز. البنية العامة attr_accessor(symbol, ...) → nil attr_accessor(string, ...) → nil‎ المعاملات symbol‎ رمز لتحديد الخاصية. string‎ سلسلة نصية لتحديد الخاصية. القيمة المعادة تعاد القيمة nil. أمثلة مثال على استخدام التابع attr_accessor‎: module Mod attr_accessor(:one, :two) end Mod.instance_methods.sort #=> [:one, :one=, :two, :two=]‎ ...

التابع Module.module_eval‎ في روبي

يُقيّم التابع module_eval السلسلة النصية أو الكتلة المعطاة في سياق الوحدة، إلا أنه عند إعطاء كتلة، فلن تتأثر عملية البحث عن الثوابت/ الأصناف. يمكن استخدام هذا التابع لإضافة توابع لصنف ما. يعيد التابع module_eval نتيجة تقييم وسائطه. البنية العامة module_eval(string [, filename [, lineno]]) → obj module_eval {|mod| block }→ obj‎ المعاملات string‎ السلسلة النصية المراد تقييمها. filename‎ يحدد هذا الوسيط والوسيط lineno نص رسائل الخطأ. lineno‎ يحدد هذا الوسيط والوسيط filename نص رسائل الخطأ. القيمة المعادة تعاد نتيجة تقييم المعاملات المعطاة. ...

الشيفرة الميتة (Dead Code)

توصيف المشكلة وجود العديد من المتغيِّرات (variables) أو المعاملات (parameters) أو الحقول (fields) أو التوابع (methods) أو الأصناف (classes) غير المستخدمة في الشيفرة. أسبابها عدم توفُّر الوقت الكافي لتوضيب الشيفرة وإزالة ما لم يعُد مستخدَمًا فيها، وذلك بعد تغيُّر متطلَّبات البرنامج أو إجراء بعض الإصلاحات به. وجود تعابيرَ شرطيَّةٍ معقَّدةٍ لا يتحقَّقُ شرطُ أحد فروعها (بسبب خطأٍ ما أو بحالاتٍ خاصّةٍ لن تحدث). وما الحل؟ الطريقة الأسرع لإيجاد الشيفرة الميتة هي استخدام بيئةٍ تطويريّةٍ متكاملةٍ (IDE) قويّةٍ وجيدة، ويتلخَّص الحل ...

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

(PHP 4 >= 4.2.0, PHP 5, PHP 7) تُعطي الدالة floatval()‎‎ قيمة من نوع عدد عشري (float) لمتغيّر ما. الوصف float floatval ( mixed $var ) تُعطي قيمة من نوع عدد عشري للمتغيّر var. المعاملات var قد يكون من أي نوع عددي. لا يجب استخدام الدالة floatval()‎ مع الكائنات، وينتج عن فعل ذلك خطأ من مستوى E_NOTICE وإعادة القيمة 1. القيم المعادة قيمة من نوع عدد عشري للمتغير المُعطى. تُعيد المصفوفات الفارغة القيمة 0، والمصفوفات غير الفارغة القيمة 1. تُعيد السّلاسل ...

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

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

تنقيح تطبيقات ريلز

يقدّم هذا الدليل التقنيات اللازمة لتنقيح تطبيقات ريلز. بعد قراءة هذا الدليل، ستتعلّم: الغرض من التنقيح. كيفة تتبّع العلل والأخطاء التي لا تتعرّف عليها الاختبارات في تطبيقك. طرقًا مختلفة للتنقيح. كيفيّة تحليل أثر المكدس. مساعدي العرض للتنقيح احدى المهام الشائعة في التنقيح هي فحص محتويات متغيّر معيّن، لذا يوفر ريلز ثلاثة طرائق لفعل ذلك: Debug To_yaml Inspect debug سيعيد المساعد debug الوسم <pre> الذي يصدّر الكائن باستخدام تنسيق YAML، وسيؤدي هذا إلى توليد بيانات يمكن للإنسان قراءتها من أي كائن. ...

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

(PHP 4, PHP 5, PHP 7) تُعيد الدالة gettype()‎‎‎‎ نوع المتغيّر. الوصف string gettype ( mixed $var ) تُعيد نوع المتغيّر var في PHP. للتحقّق من نوع المتغيّرات استخدم الدوال ذات البادئة is_*‎. المعاملات var المتغيّر المطلوب التحقّق من نوعه. القيم المعادة القيم الممكنة للسلسلة النصّيّة المُعادة هي: "boolean": قيمة منطقية. "integer": عدد صحيح. "double": عدد مُضاعَف الدقة (لأسباب تاريخيّة تُعاد القيمة "double" في حال كان المتغيّر عددًا عشريًّا float، وذلك بدلًا من إعادة القيمة "float" ببساطة). "string": سلسلة نصّيّة. "array": ...

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

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

التابع Module.class_eval‎ في روبي

يُقيِّم التابع class_eval السلسلة النصية أو الكتلة المعطاة في سياق الوحدة التي استُدعي معها، إلا أنه عند إعطاء كتلة، فلن تتأثر عملية البحث عن متغيرات الأصناف/الثوابت. يمكن استخدامه لإضافة توابع إلى صنف ما. يعيد التابع module_eval نتيجة تقييم الوسيط الممرر إليه. البنية العامة class_eval(string [, filename [, lineno]]) → obj class_eval {|mod| block } → obj‎ المعاملات string‎ السلسلة النصية المراد تقييمها. filename‎ يحدد هذا المعامل والمعامل lineno نص رسائل الخطأ. lineno‎ يحدد هذا المعامل والمعامل filename نص رسائل الخطأ. القيمة ...

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

(PHP 4, PHP 5, PHP 7) تُعيِّن الدالة settype()‎‎‎‎‎ نوع المتغيّر. الوصف bool settype ( mixed &$var , string $type ) تُعيِّن نوع المتغيّر var إلى النّوع type. المعاملات var المتغيّر المطلوب تغيير نوعه. type القيم المُمكنة للنوع هي: "boolean" أو "bool": قيمة منطقية. "integer" أو "int": عدد صحيح. "float" أو "double": عدد عشري. "string": سلسلة نصّيّة. "array": مصفوفة. "object": كائن. "null": عَدَم. القيم المعادة تُعيد القيمة TRUE عند النّجاح، أو FALSE عند الفشل. أمثلة المثال 1: مثال على الدالة settype()‎ ...

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

(PHP 4, PHP 5, PHP 7) تُعطي الدالة unserialize()‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ قيمة بلغة PHP انطلاقًا من تمثيل مُخزَّن. الوصف mixed unserialize ( string $str [, array $options ] ) تأخذ الدالة unserialize()‎ متغيّرًا متسلسلًا واحدًا وتُحوِّله مرّة أخرى إلى قيمة PHP. تحذير: لا تُمرِّر مُدخَلات المستخدم غير الموثوقة إلى الدالة unserialize()‎ بغض النظر عن قيم المُعامِل options للأصناف المسموحة allowed_classes. قد ينتج عن فك التّسلسل تحميل وتنفيذ شيفرة ما وذلك نظرًا لاستنساخ الكائنات والتحميل التلقائي، ويُمكِن للمستخدم الضار استغلال ذلك. استخدم صيغة تبادل ...

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

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

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

(PHP 4 >= 4.2.0, PHP 5, PHP 7) تُعيد أو تُخرِج الدالة var_export()‎‎‎‎ تمثيل سلسلة نصّيّة قابل للتحليل لمتغيّر ما. الوصف mixed var_export ( mixed $expression [, bool $return = FALSE ] ) تحصل الدالة var_export()‎ على معلومات مُنظَّمة حول المتغيّر المُعطى، وهي تشبه الدالة var_dump()‎ مع استثناء وحيد، هو أنّ التمثيل المُعاد عبارة عن شيفرة PHP صالحة. المعاملات expression المتغيّر المطلوب استخراجه. return عندما تكون قيمته TRUE ستُعيد الدالة var_export()‎ تمثيل المتغيّر بدلًا من إخراجه. القيم المعادة تُعيد تمثيل المتغيّر ...

ملفات التصريحات اعتمادًا على الأمثلة في TypeScript

مقدمة الهدف من هذا الدليل هو تعليمك كيفيّة كتابة ملف تعريف عالي الجودة. هذا الدليل يريك أولًا توثيق واجهة برمجية (API) معيّنة مع طريقة استعمالها، ثم يشرح كيفية كتابة التصريح الملائم. هذه الأمثلة مرتبة تصاعديا حسب التعقيد، من الأبسط إلى الأعقد: المتغيرات العامة (Global Variables). الدوال العامة (Global Functions). الكائنات ذات الخاصيات. الدوال ذات الأحمال الزائدة (Overloaded Functions). الأنواع القابلة لإعادة الاستخدام (الواجهات). الأنواع القابلة لإعادة الاستخدام (أسماء الأنواع البديلة [Type Aliases]). تنظيم الأنواع. الأصناف. الأمثلة المتغيرات العامة التوثيق: يحتوي ...

اختلال الشيفرات ومشاكلها (Code Smells)

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

المعامل & في أردوينو

يُستعمل المعامل & لتوفير مرجعيةٍ لعنوان الذاكرة المحجوزة (referencing) لأحد المتغيرات، إذ تعدُّ المرجعية إحدى الميزات المهمة التي تُستعمَل مع المؤشرات (pointers). فإذا كان لدينا متغيرًا باسم x، فإنَّ x& يمثِّل عنوان هذا المتغير في الذاكرة. البنية العامة &variable; أمثلة مثالٌ على استعمال المعامل & مع متغير ومؤشر: int *p; // التصريح عن مؤشر؛ نوعه: عدد صحيح int i = 5, result = 0; p = &i; // 'i' عنوان ...

الدالة var()‎

الدالة var()‎ في CSS تُستخدم لتضمين قيمة خاصية مخصصة بدلًا من قيمة إحدى الخاصيات الأخرى. var(--header-color, blue); لا يمكن استخدام الدالة var()‎ في أسماء الخاصيات أو المُحدِّدات أو أي شيء آخر عدا قيم الخاصيات. أمثلة المثال الآتي يستعمل قيمة الخاصيات المخصصة عبر الدالة var()‎ مبينًا كيفية تحديد قيم احتياطية: :root { --main-bg-color: pink; } body { background-color: var(--main-bg-color); } .component .header { color: var(--header-color, blue); } .component .text { color: var(--text-color, black); } .component { --text-color: #080; } دعم المتصفحات الميزة Chrome Firefox Internet Explorer ...

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

(PHP 4, PHP 5, PHP 7) تتحقّق الدالة is_bool()‎‎‎‎‎ إذا ما كان المتغيّر قيمةً منطقيةً (boolean). الوصف bool is_bool ( mixed $var ) تتحقّق هذه الدالة إذا ما كان المتغيّر المُعطى قيمةً منطقيةً. المعاملات var المتغيّر الذي يجري تقييمه. القيم المعادة تُعيد القيمة TRUE إن كان المتغيّر منطقي، و FALSE فيما عدا ذلك. أمثلة المثال 1: أمثلة على الدالة is_bool()‎ <?php $a = false; $b = 0; // لمّا كان المتغيّر a منطقيًا، فستُعيد القيمة‏ TRUE if (is_bool($a) === true) { echo ...

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

(PHP 4, PHP 5, PHP 7) تُزيل البنية unset()‎‎ تعيين المتغيّر المُعطى. الوصف void unset ( mixed $var [, mixed $... ] ) تُدمِّر البنية unset()‎‎ المتغيّرات المحددة. يختلف سلوك الدالّة unset()‎ عند استدعائها داخل دالّة أخرى اعتمادًا على نوع المُتغيّر الذي تُحاول تدميره. فإذا أزلنا تعيين مُتغيّر عام (global) بداخل دالّة ما فسيدمّر المُتغيّر المحلّي فقط، أمّا المُتغيّر الذي يملك نفس الاسم في المكان الذي نستدعي فيه هذه الدالّة سيحافظ على نفس قيمته كما كانت قبل استدعائها، كما في المثال ...

JavaScript/Topics/Statements

في هذا القسم جميع التعابير البرمجية الموجودة في لغة JavaScript. التحكم في التنفيذ block تُستخدَم الأقسام الكتلية لتجميع عدِّة تعابير برمجية معًا، ويُعرَّف القسم بزوجين من الأقواس المعقوفة {}. break يإنهاء حلقة التكرار الحالية أو التعبير switch أو label، وستنقل تنفيذ البرنامج إلى التعبير البرمجي الذي يلي التعبير الذي انتهى. continue تجاوز تنفيذ التعابير البرمجية في التكرار الحالي (iteration) في حلقة التكرار الحالية أو حلقة التكرار المسماة (عبر لافتة)، وسيستمر تنفيذ الحلقة بدءًا من التكرار التالي. Empty يُستخدَم لتجنب توفير تعبير برمجي في ...

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

(PHP 4, PHP 5, PHP 7) تُحدِّد الدالة is_numeric()‎‎‎‎‎‎‎‎‎ ما إذا كان المتغيّر عدديًّا أو سلسلة نصّيّة عدديّة. الوصف bool is_numeric ( mixed $var ) تُحدِّد ما إذا كان المتغيّر المُعطى عدديًّا، تتكوّن السّلاسل النصّيّة العدديّة من إشارة اختياريّة، وأي عدد مُكوَّن من أرقام، وجزء عشري اختياري، وجزء أسّي اختياري، فبالتالي القيمة 0123.45e6‎+ هي قيمة عدديّة صالحة. لا يُسمَح باستخدام النظام الست عشري (مثل 0xf4c3b00c)، أو النظام الثنائي (مثل 0b10100111001). المعاملات var القيمة المطلوب التّحقّق منها. القيم المعادة تُعيد القيمة TRUE ...

التابع Object.instance_variable_set في روبي

يُعيِّن التابع instance_variable_set قيمة متغيِّر نسخةٍ (instance variable) محدِّدٍ إلى قيمة معيَّنة في الكائن المُعطى؛ هذا يؤدي إلى إحباط جهود منشئ الصنف في محاولة توفير التغليف (encapsulation) المناسب. ليس من الضروري أن يتواجد المتغيِّر قبل استدعاء هذا التابع. إذا مُرِّر اسم متغيِّر النسخة بشكل سلسلةٍ نصيةٍ (string)، فستُحوَّل تلك السلسلة إلى رمز. البنية العامة instance_variable_set(symbol, obj) → obj instance_variable_set(string, obj) → obj المعاملات symbol الرمزُ الذي يشير إلى اسم متغيِّر النسخة المراد تعيين قيمة المعامل obj إليه في الكائن المُعطى. string ...

التابع Object.clone في روبي

يُنتج التابع clone نسخةً سطحيةً (shallow copy) من الكائن المعطى. تُنسَخ متغيرات النسخة (instance variables) ولكن لا تُنسَخ الكائنات التي تشير إليها. يَنسَخ التابع clone حالة الكائن المجمدة (إلا إذا كان وسيط الكلمة المفتاحية freez: مساويًا للقيمة falsefalse) والتالفة (tainted). انظر أيضًا النقاش في صفحة التابع Object.dup. قد يمتلك هذا التابع سلوكًا  محدّدًا بالصنف (class-specific). إذا كان كذلك، سيُوثَّق السلوك تحت التابع ‎.initialize_copy من نفس الصنف. البنية العامة clone(freeze: true) → an_object المعاملات freeze وسيطُ مسمى (keyword argument) يأخذ القيمة ...

المعامل * في أردوينو

يُستعمل المعامل * لتوفير وصولٍ لقيمة مخزَّنة في عنوان محدَّد من الذاكرة (Dereferencing) لأحد المؤشرات، إذ تعدُّ الوصولية للبيانات المخزنة في عناوين الذاكرة إحدى الميزات المهمة التي تُستعمَل مع المؤشرات (pointers). فإذا كان لدينا مؤشرًا باسم p، فإنَّ p* يمثِّل القيمة المحتواة في عنوان الذاكرة التي يشير إليه هذا المؤشر. البنية العامة &variable; أمثلة مثالٌ على استعمال المعامل * مع مؤشر: int *p; // التصريح عن مؤشر؛ نوعه: عدد صحيح int i = 5, result ...

الخاصيات المخصصة في CSS

أسماء الخاصيات التي تُسبَق بشرطتين --، مثل ‎--example-name، تُمثِّل الخاصيات المخصصة (custom properties) التي تُسنَد لها قيمةٌ يمكن إعادة استخدامها في المستند عبر الدالة var()‎. بطاقة الخاصية القيمة الابتدائية لا يوجد تُطبَّق على جميع العناصر. قابلة للوراثة لا قابلة للحركة لا القيمة المحسوبة كما حُدِّدَت. --somekeyword: left; --somecolor: #0000ff; --somecomplexvalue: 3px 6px rgb(20, 32, 54); أمثلة المثال الآتي يُعرِّف متغيرين ثم يستخدم قيمتهما في بقية المستند، لاحظ كيف ستُطبَّق قواعد الوراثة على الخاصيات المخصصة: <p id="firstParagraph">يجب أن تحتوي هذه الفقرة على خلفية ...

Arduino/Topics

بنية لغة أردوينو تخضع الشيفرة في لغة أردوينو إلى بعض التعديلات البسيطة ثم تمرَّر إلى مفسِّر ++C/C. يمكن استعمال جميع البنى والتعابير القياسية في لغة C أو ++C التي يدعمها المفسِّر في أردوينو. لن تجد في شيفرة أردوينو الدالة main()‎ المعتادة ولكن ستجد عوضًا عنها دالتين رئيسين هما: الدالة setup()‎ والدالة loop()‎ اللتان تفسران وتوصلان بالدالة الرئيسيةmain() ‎ لإنشاء البرنامج التنفيذي التكراري (cyclic executive program) عبر استعمال سلسلة أدوات GNU. يُستعمَل البرنامج avrdude المضمن ضمن أردوينو IDE لتحويل الشيفرة التنفيذية ...

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