نتائج البحث

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

المعامل الشرطي في JavaScript

المعامل الشرطي (conditional operator) هو المعامل الوحيد في JavaScript الذي يأخذ ثلاثة قيمة ليجري عليها عمليته، ومن الشائع استخدام هذا المعامل كاختصارٍ للتعبير البرمجي if. البنية العامة condition ? expr1 : expr2 condition تعبير برمجي نتيجته هي true أو false. expr1 و expr2 تعبيرين برمجيين من أيّ نوع. الوصف إذا كان الشرط condition محققًا true فسيُعيد المعامل قيمة التعبير expr1، وفيما عدا ذلك سيُعيد قيمة التعبير expr2؛ فمثلًا لو أردنَا عرض رسالة مختلفة اعتمادًا على قيمة المتغير isMember فسنستخدم التعبير ...

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

يعيد التابع maxgroups العدد الأقصى لمُعرِّفات المجموعات المسموح بها في قائمة وصول المجموعات الإضافية (supplemental group access list). البنية العامة maxgroups → integer القيم المعادة يعاد عدد صحيح يمثِّل أقصى عدد لمُعرِّفات المجموعات المسموح بها في قائمة وصول المجموعات الإضافية. أمثلة مثال على استعمال التابع maxgroups: Process.maxgroups #=> 32 انظر أيضًا التابع groups: يجلب مُعرِّفات المجموعات الموجودة في قائمة وصول المجموعات الإضافية (supplemental group access list) للعملية الحالية. التابع initgroups: يهيِّئ قائمة وصول المجموعات الإضافية (supplemental group access list) ...

التابع =Process.maxgroups في روبي

يضبط التابع maxgroups عند استدعائه بالشكل maxgroups= integer العدد الأقصى لمُعرِّفات المجموعات المسموح بها في قائمة وصول المجموعات الإضافية (supplemental group access list) إلى القيمة integer. البنية العامة maxgroups= integer → integer القيم المعادة يعاد العدد الصحيح integer بعد تعيين العدد الأقصى لمُعرِّفات المجموعات المسموح بها في قائمة وصول المجموعات الإضافية إلى قيمته. انظر أيضًا التابع groups=‎: يضبط عند استدعائه بالشكل groups= array قائمة وصول المجموعات الإضافية إلى المصفوفة array المكونة من مُعرِّفات المجموعات للعملية الحالية. التابع initgroups: يهيِّئ قائمة وصول ...

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

يهيِّئ التابع initgroups قائمة وصول المجموعات الإضافية (supplemental group access list) عبر قراءة قاعدة بيانات مجموعة النظام (system group database) واستعمال جميع المجموعات التي يكون المستخدم المعطى عضوًا فيها. يمكن إضافة مجموعة ذات مُعرِّف محدَّد إلى القائمة أيضًا. هذا التابع غير متاح على جميع المنصات. البنية العامة initgroups(username, gid) → array المعاملات username المستخدم المراد إضافة المجموعات التي يكون عضوًا فيها إلى قائمة وصول المجموعات الإضافية. gid عدد صحيح يشير إلى مُعرِّف المجموعة المراد إضافتها إلى قائمة وصول المجموعات الإضافية. القيم ...

التابع Mutex.synchronize‎ في روبي

يطبِّق التابع synchronize القفل (lock) وينفذ الكتلة المعطاة، ثم يحرر القفل عند اكتمال تنفيذ الكتلة. البنية العامة synchronize { ... } → result of the block‎ القيمة المعادة يعاد ناتج تنفيذ الكتلة المعطاة. أمثلة مثال على استخدام التابع synchronize: semaphore = Mutex.new a = Thread.new { semaphore.synchronize { # access shared resource } } b = Thread.new { semaphore.synchronize { # access shared resource } } انظر أيضا التابع sleep: يحرر القفل وينام لمدة محدَّدة من الثواني. ...

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

يجلب التابع groups مُعرِّفات المجموعات الموجودة في قائمة وصول المجموعات الإضافية (supplemental group access list) للعملية الحالية. البنية العامة groups → array القيم المعادة تعاد مصفوفة تحوي مُعرِّفات المجموعات الموجودة في قائمة وصول المجموعات الإضافية (supplemental group access list) للعملية الحالية. أمثلة مثال على استعمال التابع groups: Process.groups #=> [27, 6, 10, 11] انظر أيضًا التابع getpgid: يعيد مُعرِّف المجموعة المالكة لعملية محدَّدة. التابع gid: يعيد المُعرِّف الحقيقي للمجموعة المالكة للعملية الحالية. التابع groups=‎: يضبط عند استدعائه بالشكل groups= ...

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

يمكن استخدام الصنف Mutex وكائناته كواجهة لتنسيق الوصول إلى البيانات المشتركة من عدة خيوط (threads) موجودة وتعمل في نفس الوقت. إليك هذا المثال: semaphore = Mutex.new a = Thread.new { semaphore.synchronize { # access shared resource } } b = Thread.new { semaphore.synchronize { # access shared resource } } توابع الصنف العامة (Public Class Methods) new ينشئ كائنًا جديدًا من النوع Mutex. توابع النسخة العامة (Public Instance Methods) lock يحاول مسك القفل (grab ...

معاملات وصول المؤشر في أردوينو

معاملات وصول المؤشر هي (Pointer Access Operators) هي المعاملات التي تُستعمَل مع المؤشرات لتوفير وصول المؤشر إلى عناوين المتغيرات في الذاكرة والإشارة إليها، وإمكانية وصول المتغيرات إلى القيم المحتواة في عناوين الذاكرة التي تشير إليها المؤشرات. المعامل & يُستعمل لتوفير مرجعيةٍ لعنوان الذاكرة المحجوزة (referencing) لأحد المتغيرات، إذ تعدُّ المرجعية إحدى الميزات المهمة التي تُستعمَل مع المؤشرات (pointers). المعامل * يُستعمل لتوفير وصولٍ لقيمة مخزَّنة في عنوان محدَّد من الذاكرة (Dereferencing) لأحد المؤشرات، إذ تعدُّ الوصولية للبيانات المخزنة في عناوين ...

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

يعيد التابع writable_real?‎ إن كان ملفٌ ما قابلًا للكتابة من طرف مُعرِّف المستخدم والمجموعة الحقيقي للعملية الحالية. اطلع على توثيق الدالة access(3)‎. البنية العامة writable_real?(file_name) → true or false المعاملات file_name اسم الملف المراد التحقق منه. القيمة المعادة تعاد القيمة true إن كان ملفٌ ما قابلًا للقراءة من طرف مُعرِّف المستخدم والمجموعة الحقيقي للعملية الحالية. خلا ذلك، تعاد القيمة false.   انظر أيضًا التابع owned?‎: يتحقق إن كان ملفٌ ما موجودًا وكان مالك هذا الملف هو نفسه المعرِّف الفعلي للمستخدم المالك للعملية التي استدعته. التابع readable_real?‎: يتحقق إن كان ...

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

يعيد التابع writable_real?‎ إن كان ملفٌ ما قابلًا للكتابة من طرف مُعرِّف المستخدم والمجموعة الحقيقي للعملية الحالية. اطلع على توثيق الدالة access(3)‎. البنية العامة writable_real?(file_name) → true or false المعاملات file_name اسم الملف المراد التحقق منه. القيمة المعادة تعاد القيمة true إن كان ملفٌ ما قابلًا للقراءة من طرف مُعرِّف المستخدم والمجموعة الحقيقي للعملية الحالية. خلا ذلك، تعاد القيمة false.   انظر أيضا التابع owned?‎: يتحقق إن كان ملفٌ ما موجودًا وكان مالك هذا الملف هو نفسه المعرِّف الفعلي للمستخدم المالك للعملية التي استدعته. ...

التابع TracePoint.disable‎ في روبي

يعطل التابع disable التعقب. في حال إعطاء كتلة لهذا التابع، فلن يُعطّل التعقب إلا ضمن نطاق تلك الكتلة. البنية العامة disable → true or false disable { block } → obj‎ القيمة المعادة تعاد القيمة true إن كان التعقب مفعَّلًا أو تعاد القيمة false إذا كان معطَّلًا مسبقًا. أمثلة مثال على استعمال التابع disable: trace.enabled? #=> true trace.disable #=> true (previous status) trace.enabled? #=> false trace.disable ...

التابع TracePoint.enable‎ في روبي

يفعِّل التابع enable التعقب. في حال إعطاء كتلة لهذا التابع، فلن يُنشّط التعقب إلا في نطاق تلك الكتلة. البنية العامة enable→ true or false enable { block } → obj‎ القيمة المعادة تعاد القيمة true إن كان التعقب مفعَّلًا أو تعاد القيمة false إذا كان معطَّلًا مسبقًا. أمثلة مثال على استعمال التابع enable: trace.enabled? #=> false trace.enable #=> false (previous state) # ...

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

يتحقق التابع executable_real?‎ إن كان ملفٌ ما قابلًا للتنفيذ من طرف المعرِّف الحقيقي للمستخدم المالك والمجموعة المالكة للعملية الحالية. اطلع أيضًا على توثيق الدالة access(3)‎. البنية العامة executable_real?(file_name) → true or false المعاملات file_name سلسلة نصية أو كائن من النوع IO يمثِّل الملف المراد التحقق منه. القيمة المعادة تعاد القيمة true إن كان الملف file_name قابلًا للتنفيذ من طرف المعرِّف الحقيقي للمستخدم المالك والمجموعة المالكة للعملية الحالية. خلا ذلك، تعاد القيمة false.   انظر أيضًا التابع directory?‎: يتحقق إن كان ملفٌ ما مجلَّدًا أو وصلةً رمزيًّةً تشير إلى مجلدٍ. التابع executable?‎: يتحقق إن ...

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

يتحقق التابع executable_real?‎ إن كان ملفٌ ما قابلًا للتنفيذ من طرف المعرِّف الحقيقي للمستخدم المالك والمجموعة المالكة للعملية الحالية. اطلع أيضًا على توثيق الدالة access(3)‎. البنية العامة executable_real?(file_name) → true or false المعاملات file_name سلسلة نصية أو كائن من النوع IO يحدِّد اسم الملف المراد التحقق منه. القيمة المعادة تعاد القيمة true إن كان الملف file_name قابلًا للتنفيذ من طرف المعرِّف الحقيقي للمستخدم المالك والمجموعة المالكة للعملية الحالية. خلا ذلك، تعاد القيمة false.   انظر أيضا التابع directory?‎: يتحقق إن كان ملفٌ ...

الدالة Enum.clone()‎ في Kotlin

ترمي الدالة clone()‎ استثناءً لأنّ ثوابت الصنف Enum لا يمكن أن تُنسَخ. تمنع هذه الدالة الأصناف ذات النوع Enum من أن ترِث من الصنف Cloneable. البنية العامة protected fun clone(): Any أمثلة يؤدي استعمال الدالة clone()‎ في المثال التالي إلى رمي استثناء: fun main(args: Array<String>) { val x = ColorEnum.Red val y = x.clone() // Error:(3, 14) Cannot access 'clone': it is protected in 'ColorEnum' } enum class ColorEnum(val colorCode: Int) { Red(2), ...

التابع 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=]‎ ...

التابع =Process.groups في روبي

يضبط التابع groups عند استدعائه بالشكل groups= array قائمة وصول المجموعات الإضافية إلى المصفوفة array المكونة من مُعرِّفات المجموعات للعملية الحالية. البنية العامة groups= array → array القيم المعادة تعاد المصفوفة array المعطاة بعد تعيينها إلى قائمة وصول المجموعات الإضافية للعملية الحالية. أمثلة مثال على استعمال التابع groups: Process.groups #=> [0, 1, 2, 3, 4, 6, 10, 11, 20, 26, 27] Process.groups = [27, 6, 10, 11] #=> [27, 6, 10, 11] Process.groups #=> [27, 6, 10, ...

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

يجلب التابع getpriority قيمة أولوية الجدولة (scheduling priority) لعملية محدَّدة أو لمجموعة مالكة أو مستخدم مالك لعملية. كلما كانت الأولوية منخفضة، كان ذلك أنسب لجدولة. هذا التابع غير متوافر على جميع المنصات. البنية العامة getpriority(kind, integer) → integer المعاملات kind يشير إلى نوع الكيان المراد البحث عنه. وهو أحد القيم التالية: Process::PRIO_PGRP، أو Process::PRIO_USER، أو Process::PRIO_PROCESS. integer عدد صحيح يشير إلى عملية محدَّدة، أو مُعرِّف مجموعة أو مستخدم مالك لعملية. القيمة 0 تشير إلى العملية الحالية. القيم المعادة يعاد عدد صحيح ...

التابع TracePoint.new‎ في روبي

يُعيد التابع new متعقبًا جديدًا غير مفعَّل افتراضيًّا. راجع صفحة الصنف TracePoint للتعرف على الأحداث الممكنة ولمزيد من المعلومات. يجب إعطاء كتلة للتابع، وإلا سيُطلق الاستثناء ArgumentError. البنية العامة new(*events) { |obj| block } → obj‎ المعاملات events‎ أحداث يراد إنشاء تعقب لها. القيمة المعادة يعاد متعقبٌ جديدٌ للأحداث events. أمثلة من أجل تفعيل التعقب بعد إنشائه باستعمال التابع new، يجب عليك استخدام التابع enable: trace = TracePoint.new(:call) do |tp| p [tp.lineno, tp.defined_class, tp.method_id, tp.event] end #=> #<TracePoint:disabled> trace.enable #=> false puts "Hello, ...

الوحدة Process في روبي

تستعمل الوحدة Process للتعامل والتحكم بجميع العمليات في روبي. الثوابت CLOCK_BOOTTIME اطلع على توثيق التابع clock_gettime. CLOCK_BOOTTIME_ALARM اطلع على توثيق التابع clock_gettime. CLOCK_MONOTONIC اطلع على توثيق التابع clock_gettime. CLOCK_MONOTONIC_COARSE اطلع على توثيق التابع clock_gettime. CLOCK_MONOTONIC_FAST اطلع على توثيق التابع clock_gettime. CLOCK_MONOTONIC_PRECISE اطلع على توثيق التابع clock_gettime. CLOCK_MONOTONIC_RAW اطلع على توثيق التابع clock_gettime. CLOCK_MONOTONIC_RAW_APPROX اطلع على توثيق التابع clock_gettime. CLOCK_PROCESS_CPUTIME_ID اطلع على توثيق التابع clock_gettime. CLOCK_PROF اطلع على توثيق التابع clock_gettime. CLOCK_REALTIME اطلع على توثيق التابع clock_gettime. CLOCK_REALTIME_ALARM اطلع على توثيق ...

Python/pathlib/Path/mkdir

التابع Path.mkdir في بايثون يُنشئ هذا التابع مجلّدًا في المسار المُعطى بالخصائص التي يتم تحديدها في باقي الوسطاء. Create a new directory at this given path. If mode is given, it is combined with the process’ umask value to determine the file mode and access flags. If the path already exists, FileExistsError is raised. If parents is true, any missing parents of this path are created as needed; they are created with the default permissions without taking mode into account ...

قابلية الرؤية في كائنات PHP

يمكن تعريف قابلية رؤية خاصية أو تابع أو (بدءًا من الإصدار 7.1.0 من اللغة) ثابت بأنّها إلحاق صيغة التصريح بإحدى الكلمات المفتاحية public، أو protected، أو private. يتيح التصريح من نوع public الوصول إلى أعضاء الصنف من أي مكان، ويتيح التصريح من نوع protected الوصول إلى الأعضاء من داخل الصنف نفسه أو الأصناف التي ترث الصنف أو تورّثه، أما التصريح من نوع private فيتيح الوصول إلى الأعضاء من داخل الصنف الذي عرِّف فيه ذلك العضو حصرًا. قابلية رؤية الخاصية يجب ...

قابلية الرؤية في كائنات PHP

يمكن تعريف قابلية رؤية خاصية أو تابع أو (بدءًا من الإصدار 7.1.0 من اللغة) ثابت بأنّها إلحاق صيغة التصريح بإحدى الكلمات المفتاحية public، أو protected، أو private. يتيح التصريح من نوع public الوصول إلى أعضاء الصنف من أي مكان، ويتيح التصريح من نوع protected الوصول إلى الأعضاء من داخل الصنف نفسه أو الأصناف التي ترث الصنف أو تورّثه، أما التصريح من نوع private فيتيح الوصول إلى الأعضاء من داخل الصنف الذي عرِّف فيه ذلك العضو حصرًا. قابلية رؤية الخاصية يجب ...

ثوابت الأصناف في PHP

يمكن تعريف قيم ثابتة لا يمكن تعديلها ولكل صنفٍ على حدة. تختلف الثوابت عن المتغيرات الاعتيادية في عدم استخدام العلامة $ للتصريح عنها أو استخدامها. تمتلك ثوابت الأصناف قابلية رؤية من نوع public. يجب أن تكون القيمة تعبيرًا ثابتًا وليس (على سبيل المثال) متغيرًا أو خاصّية أو استدعاء دالة. يمكن للواجهات interfaces أن تمتلك ثوابت أيضًا. راجع التوثيق الخاص بالواجهات لمشاهدة الأمثلة. منذ الإصدار 5.3.0، أصبح بالإمكان استخدام المتغيرات للإشارة إلى الصنف، ولا يمكن أن يحمل المتغير قيمة تمثّل إحدى ...

ثوابت الأصناف في PHP

يمكن تعريف قيم ثابتة لا يمكن تعديلها ولكل صنفٍ على حدة. تختلف الثوابت عن المتغيرات الاعتيادية في عدم استخدام العلامة $ للتصريح عنها أو استخدامها. تمتلك ثوابت الأصناف قابلية رؤية من نوع public. يجب أن تكون القيمة تعبيرًا ثابتًا وليس (على سبيل المثال) متغيرًا أو خاصّية أو استدعاء دالة. يمكن للواجهات interfaces أن تمتلك ثوابت أيضًا. راجع التوثيق الخاص بالواجهات لمشاهدة الأمثلة. منذ الإصدار 5.3.0، أصبح بالإمكان استخدام المتغيرات للإشارة إلى الصنف، ولا يمكن أن يحمل المتغير قيمة تمثّل إحدى ...

الحقل submit

عناصر <input> ذات النوع submit تُعرَض كأزرار لإرسال النموذج، فالضغط على أحد تلك الأزرار سيؤدي إلى إرسال بيانات جميع عناصر النموذج إلى الخادوم. الخاصية value تحتوي الخاصية value في الحقل submit على سلسلة نصية (DOMString) التي ستستعمل كلافتة للزر. <input type="submit" value="أرسل"> أما إذ لم تُحدَّد قيمة للخاصية value فستستعمل اللافتة الافتراضية Submit: <input type="submit"> استخدام أزرار الإرسال تستخدم أزرار إعادة الإرسال لإرسال بيانات جميع حقول النموذج. فإذا أردتَ إنشاء زر خاص ثم تُخصِّص سلوكه عبر JavaScript، فاستخدم الحقل button أو ...

التعامل مع الأنواع في PHP

لا تطلب PHP (أو تدعم) التصريح عن نوع المتغير عند تعريفه، لأنه نوعه يُحدَّد حسب السياق الذي سيستخدم هذا المتغير فيه. وهذا يعني أنَّه إذا أُسنِدَت قيمة سلسلة نصية إلى المتغير ‎$var، فإن نوع المتغير سيكون سلسلة نصية، وإذا أُسنِد عددٌ صحيحٌ، فيصبح نوع المتغير عددًا صحيحًا. ومثال ذلك، معامل الضرب *، إذا استعملناه على قيمتين وكانت إحدى تلك القيمتين عددًا عشريًا فستُعدّ كلا القيمتين على أنهما عددٌ عشريٌ، وكذلك ناتج تلك العملية، ولاحظ أن هذا لا يغير نوع العامل ...

التعامل مع الأنواع في PHP

لا تطلب PHP (أو تدعم) التصريح عن نوع المتغير عند تعريفه، لأنه نوعه يُحدَّد حسب السياق الذي سيستخدم هذا المتغير فيه. وهذا يعني أنَّه إذا أُسنِدَت قيمة سلسلة نصية إلى المتغير ‎$var، فإن نوع المتغير سيكون سلسلة نصية، وإذا أُسنِد عددٌ صحيحٌ، فيصبح نوع المتغير عددًا صحيحًا. ومثال ذلك، معامل الضرب *، إذا استعملناه على قيمتين وكانت إحدى تلك القيمتين عددًا عشريًا فستُعدّ كلا القيمتين على أنهما عددٌ عشريٌ، وكذلك ناتج تلك العملية، ولاحظ أن هذا لا يغير نوع العامل ...

الحقل reset

عناصر <input> ذات النوع reset تُعرَض كأزرار لإعادة تعيين عناصر النموذج، فالضغط على أحد تلك الأزرار سيؤدي إلى إعادة تعيين جميع عناصر النموذج إلى قيمها المبدئية. ملاحظة: ليس من المستحسن عمومًا تضمين أزرار لإعادة التعيين في النماذج، ففائدتها قليلة، وتسبب إزعاجًا للمستخدم إن ضغطها خطأً بدلًا من زر الإرسال. الخاصية value تحتوي الخاصية value في الحقل reset على سلسلة نصية (DOMString) التي ستستعمل كلافتة للزر. <input type="reset" value="إعادة تعيين النموذج"> أما إذ لم تُحدَّد قيمة للخاصية value فستستعمل اللافتة الافتراضية Reset: ...

نقل الميزات ما بين الكائنات (Moving Features between Objects)

تساعد عملية إعادة التصميم (refactoring) في توزيع المهام بشكل مثاليّ على الأصناف (classes) المختلفة في الشيفرة، وتضمن تقنيات الحل هذه طريقةً آمنةً لنقل المهام (functionality) ما بين الأصناف، وإنشاء أصناف جديدة وحماية تفاصيل عملية التنفيذ (implementation) من الوصول العام (public access)، وهذه التقنيات تشمل: نقل التابع (Move Method) المشكلة: استخدام التابع (method) في صنفٍ (class) ما أكثر من استخدامه في صنفه الأساسيّ. الحل: إنشاء تابعٍ جديدٍ في الصنف الأكثر استخدامًا لذلك التابع ونقل شيفرته إلى التابع الجديد، ثم تحويل الشيفرة ...

نقل الميزات ما بين الكائنات (Moving Features between Objects)

تساعد عملية إعادة التصميم (refactoring) في توزيع المهام بشكل مثاليّ على الأصناف (classes) المختلفة في الشيفرة، وتضمن تقنيات الحل هذه طريقةً آمنةً لنقل المهام (functionality) ما بين الأصناف، وإنشاء أصناف جديدة وحماية تفاصيل عملية التنفيذ (implementation) من الوصول العام (public access)، وهذه التقنيات تشمل: نقل التابع (Move Method) المشكلة: استخدام التابع (method) في صنفٍ (class) ما أكثر من استخدامه في صنفه الأساسيّ. الحل: إنشاء تابعٍ جديدٍ في الصنف الأكثر استخدامًا لذلك التابع ونقل شيفرته إلى التابع الجديد، ثم تحويل الشيفرة ...

إنشاء قوائم باستخدام الأمر المُضمَّن select في Bash

عام استخدام أمر select البُنية اللغوية لأمر select تشبه بُنية حلقة for: select WORD [in LIST]; do RESPECTIVE-COMMANDS; done ويُستخدم أمر select من أجل إنشاء قوائم بسهولة عبر اتباع ما يلي: تُوسّع القائمة LIST مولِّدة قائمة من العناصر ويطبع التوسع في خطأ قياسي (standard error)، كما يُسبق كل عنصر من القائمة برقم. وإن لم تكن in LIST موجودة فتُطبع المعامِلات الموضعية كما لو تم تحديد @$ in. أيضًا، تُطبع قائمة LIST مرة واحدة فقط. يُطبع محث PS3 عند طباعة كل العناصر، ...

تعديل المستخدم ALTER USER

يُستخدم هذا الأمر للتعديل من خصائص وسماحيات المستخدم، وله الصيغ الآتية (بحسب محركات قواعد البيانات المختلفة): في محرك البيانات PostgreSQL ALTER USER {name | CURRENT_USER} [ WITH ] option [ ... ] إذ إن name هو اسم المستخدم الذي ستطرأ التعديلات عليه، ويمكن أن يكون الخيار option أحد الكلمات المفتاحية الآتية: الخيار مهمته  SUPERUSER لجعل المستخدم SUPERUSER أي له كافة صلاحيات الوصول access privileges في قاعدة البيانات CREATEDB لإعطاء المستخدم صلاحية إنشاء قاعدة بيانات جديدة CREATEROLE لإعطاء المستخدم صلاحية إنشاء مستخدم ...

إنشاء مستخدم جديد CREATE USER

يُستخدم هذا الأمر لإنشاء مستخدم جديد، وله الصيغ الآتية (بحسب محركات قواعد البيانات المختلفة). في محرك البيانات PostgreSQL CREATE USER name [ [ WITH ] option [ ... ] ] إذ إن name هو اسم المستخدم المنشَأ ويمكن أن يكون الخيار option أحد الكلمات المفتاحية الآتية: الخيار مهمته  SUPERUSER لجعل المستخدم SUPERUSER أي له كافة صلاحيات الوصول access privileges في قاعدة البيانات CREATEDB لإعطاء المستخدم صلاحية إنشاء قاعدة بيانات جديدة CREATEROLE لإعطاء المستخدم صلاحية إنشاء مستخدم آخر جديد CONNECTION LIMIT connlimit ...

SQL/Topics

أنواع البيانات أنواع البيانات التي يمكن استخدامها مع محركات قواعد البيانات المختلفة (البيانات العددية، والبيانات النصية، والوقت والتاريخ، والبيانات الثنائية ...إلخ.). أساسيات لغة SQL القيمة NULL يستخدم التعبير IS NULL للتأكد من خلو القيمة (أي لا توجد قيمة في الحقل المحدد). التعليقات Comments تضاف التعليقات إلى الشيفرة بهدف تسهيل قراءتها أو كتابة ملاحظات جانبية مساعدة. SELECT count(*); -- This comment continues to the end of line SELECT count(*); /* This is an inline ...

الترخيص (Authorization) في Laravel

مقدمة بالإضافة إلى توفير خدمات الاستيثاق المضمنة بإطار العمل Laravel، يوفر Laravel أيضًا طريقة بسيطة لترخيص عمليات المستخدم على مورد معين. مثلما هو الحال مع الاستيثاق، فإن أسلوب Laravel للترخيص بسيط، وهناك طريقتان أساسيتان لترخيص العمليات: البوابات والسياسات (gates and policies). فكر في البوابات والسياسات مثل المسارات ووحدات التحكم. توفر البوابات أسلوبًا بسيطًا يعتمد على الإغلاق للترخيص، بينما تقوم السياسات، مثل وحدات التحكم، بتجميع منطقها حول نموذج معين أو مورد. سنستكشف البوابات أولاً ثم نفحص السياسات. لست بحاجة إلى الاختيار ...

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

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

الحقل button

عناصر <input> ذات النوع button تُعرَض كأزرار عادية، والتي يمكن برمجتها للتحكم بأي شيء في الصفحة عبر ربط دالة معالجة أحداث معها (التي تُعالِج الحدث click عادةً). وعلى الرغم من أنَّ عناصر <input> ذات النوع button صحيحة تمامًا في HTML، لكن من المفضّل استخدام عنصر <button> الجديد لإنشاء الأزرار، لأن له ميزات إضافية، مثل دعمه للقيمة menu في الخاصية type التي تعني أنَّ الزر يستعمل لتفعيل قائمة منبثقة، والسماح بإضافة نص اللافتة للعنصر <button> بين وسم البداية ووسم النهاية مما ...

قوالب Blade في Laravel

مقدمة يقدم Laravel محرّك قولبةٍ بسيطاً لكن قويٌّ و فعّال هو Blade. على خلاف محرّكات PHP أخرى، لا يمنع Blade المستخدم من استعمال شيفرات PHP في الواجهة، بل إنّه يحوِِّل صفحات Blade إلى شيفرة PHP ويخزِّنها تخزينًا مؤقتًا إلى حين تغييرها. ممّا يعني أنّ Blade لا يتطلب أيّ جهد أو وقت إضافي من التطبيق. تنتهي صفحات Blade بالامتداد blade.php. وتوجد عادة في مجلد resources/views. توريث القوالب تعريف التخطيط إنّ من الفوائد الأساسية لاستخدام Blade هي توريث القوالب (template inheritance) واستخدام ...

قوالب Blade في Laravel

مقدمة يقدم Laravel محرّك قولبةٍ بسيطاً لكن قويٌّ و فعّال هو Blade. على خلاف محرّكات PHP أخرى، لا يمنع Blade المستخدم من استعمال شيفرات PHP في الواجهة، بل إنّه يحوِِّل صفحات Blade إلى شيفرة PHP ويخزِّنها تخزينًا مؤقتًا إلى حين تغييرها. ممّا يعني أنّ Blade لا يتطلب أيّ جهد أو وقت إضافي من التطبيق. تنتهي صفحات Blade بالامتداد blade.php. وتوجد عادة في مجلد resources/views. توريث القوالب تعريف التخطيط إنّ من الفوائد الأساسية لاستخدام Blade هي توريث القوالب (template inheritance) واستخدام ...

معالجة الأخطاء (Error Handling) في Laravel

مقدمة عند بدء مشروع Laravel جديد تكون معالجة الأخطاء والاستثناءات مُعدّة لك مُسبقا. تُسجّل كافة الاستثناءات التي يطلقها تطبيقك في الصنف App\Exceptions\Handler ثم تُرجع للمُستخدم. سنتعمّق في هذا الصنف أكثر من خلال هذا التوثيق. الضبط يحدد الخيار debug في ملف إعداداتك config/app.php مقدار المعلومات الفعلية التي تُعرض عن الخطأ للمستخدم. يُعد هذا الاختيار إفتراضيًّا ليحترم قيمة متغيّر البيئة APP_DEBUG التي تُخزّن في ملفك env. . عليك وضع قيمة متغير البيئة APP_DEBUG على true عند التطوير المحلّي. يجب أن توضع هذه ...

تنقيح برامج Bash

التنقيح على مستوى البرنامج ككل حين تحدث مشكلة في البرنامج الذي كتبته فإنك في حاجة إلى وضع يدك على مكان المشكلة بالتحديد داخل الشيفرة، وتوفر Bash مزايا تنقيح شاملة لعل أشهرها هو بدء صدفة فرعية بخيار x- الذي سيبدأ الصدفة بالكامل في طور التنقيح، وستُطبَع آثار كل أمر إضافة إلى وسائطه (arguments) إلى خَرج قياسي (standard output) بعد توسيع الأوامر لكن قبل تنفيذها. الشيفرة التالية هي لبرنامج commented-script1.sh من مثال أساسيات كتابة برامج Bash، وقد استدعينا الصدفة في طور التنقيح ...

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

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

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

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

الأصناف في TypeScript

مقدمة تعتمد لغة JavaScript التقليدية على الدوال والوراثة المعتمدة على سلسلة Prototype لبناء مكونات قابلة لإعادة الاستعمال، وقد يجد بعض المبرمجين هذه الطريقة غريبة ومرهقة، خاصّة الذين ألِفوا البرمجة كائنيّة التوجه التي تعتمد على الأصناف التي ترث وظيفة (functionality) الأصناف الأساس (base classes) وتُبنَى فيها الكائنات من هذه الأصناف. بدايةً من الإصدار ECMAScript 2015 المعروف كذلك بالإصدار ECMAScript 6، يُمكن لمبرمجي JavaScript بناء التطبيقات باستخدام البرمجة كائنيّة التوجّه المعتمِدة على الأصناف. وتسمح TypeScript للمطورين باستعمال هذه التقنيات الآن، وتُترجِمها إلى ...

إلغاء صلاحيات الوصول REVOKE

يستخدم هذا الأمر لإلغاء صلاحيات الوصول access privileges لمستخدمٍ أو مجموعة مستخدمين أو أكثر، وله إحدى الصيغ العامّة الآتية (بحسب محركات البيانات المختلفة): في محرك البيانات PostgreSQL REVOKE { { SELECT | INSERT | UPDATE | DELETE | REFERENCES } [, ...] | ALL [ PRIVILEGES ] } ON [ TABLE ] tbl_name [, ...] FROM { [GROUP ] name | PUBLIC | CURRENT_USER [, ...] }; إلغاء صلاحية تنفيذ استعلامات SELECT و INSERT و UPDATE و DELETE ...

توليد عناوين URL في Laravel

مقدمة يوفّر Laravel العديد من المساعدين لمساعدتك في إنشاء عناوين URL لتطبيقك. فائدتهم الأساسية تظهر طبعا عند بناء روابط في قوالبك (templates) واستجابات الواجهة البرمجيّة، أو عند توليد ردود إعادة توجيه إلى جزء آخر من تطبيقك. الأساسيات توليد عناوين URL أساسية يمكن استخدام المساعد url لتوليد عناوين URL عشوائية لتطبيقك. سيستخدم العنوان URL المُنشأ تلقائيًا المخطَّط (HTTP أو HTTPS) ويستضيف من الطلب الحالي: $post = App\Post::find(1); echo url("/posts/{$post->id}"); // http://example.com/posts/1 الوصول إلى العنوان URL الحالي سترد النسخة Illuminate\Routing\UrlGenerator إن لم يُوفّر أي ...

التحميل الزائد للمعاملات (Operator Overloading) في لغة Kotlin

تُتيح لغة Kotlin إجراءَ مجموعةٍ مُعرَّفة مسبقًا من العمليات على أنواع البيانات المختلفة وذلك باستخدام رموزٍ ثابتةٍ تعتمدها لغة Kotlin مثل الرمز + أو الرمز * وتختلف فيما بينها بالأولويّة (precedence)، حيث توجد دالةٌ (إما دالة من الصنف [member] أو دالة إضافيّة [extension]) باسمٍ ثابتٍ لكلّ معاملٍ مُعرَّف بحسب النوع (نوعٌ يساريٌّ للعمليات الثنائيّة [binary operations] ونوع وسائط [argument type] للعمليات الأحاديّة [unary operations])، ويجب تحديد الدوال التي تحتوي على تحميلٍ زائدٍ للمعاملات بالمُحدَّد operator، تناقش الصفحة الاصطلاحات (conventions) التي ...

منح صلاحيات الوصول GRANT

يستخدم هذا الأمر لمنح صلاحيات الوصول access privileges لمستخدمٍ أو مجموعة مستخدمين أو أكثر، وله إحدى الصيغ العامّة الآتية (بحسب محركات البيانات المختلفة): في محرك البيانات PostgreSQL GRANT { { SELECT | INSERT | UPDATE | DELETE | REFERENCES } [, ...] | ALL [ PRIVILEGES ] } ON [ TABLE ] tbl_name [, ...] TO { [GROUP ] name | PUBLIC | CURRENT_USER [, ...] } [ WITH GRANT OPTION ]; إعطاء صلاحية تنفيذ استعلامات SELECT و ...

التوصيفات (Annotations) في لغة Kotlin

التصريح عن التوصيف (Annotation Declaration) تُعدُّ التوصيفات إحدى الوسائل لإضافة بياناتٍ توصيفيّةٍ (metadata) إلى الشيفرة، وللتصريح عن التوصيف يُضاف المُحدِّد annotation قبل اسم الصنف، مثل: annotation class Fancy وقد تُحدَّد بعض خواصّ التوصيفات (annotation attributes) باستخدام التوصيفات الآتية (meta-annotations) لتوصيفات الصنف: ‎@Target لتحديد نوع العناصر التي يمكن توصيفها مثل الأصناف (classes) والدوال (functions) والخاصّيّات (properties) والتعابير (expressions) و... إلخ. ‎@Retention لتحديد فيما إن كان التوصيف مُخزَّنًا في ملفات الأصناف المُترجَمة، أو مرئيًا عبر انعكاسٍ (reflection) أثناء التنفيذ (runtime) (وكلاهما محقُّق بالحالة ...

الخاصّيّات (Properties) وحقول البيانات (Fields) في لغة Kotlin

التصريح عن الخاصّيّات (Declaring Properties) قد تحتوي الأصناف في لغة Kotlin على الخاصّيّات المعرَّفة إما كقيمٍ متغيّرةٍ عبر الكلمة المفتاحيّة var أو كقيمٍ ثابتةٍ للقراءة فقط (read-only) عبر الكلمة المفتاحيّة val، مثل: class Address { var name: String = ... var street: String = ... var city: String = ... var state: String? = ... var zip: String = ... } إذ يُمكن الوصول للخصائص عبر اسمها ...

الثوابت المتعددة في TypeScript

مقدمة تسمح لنا الثوابت المتعدّدة بتعريف مجموعة مُسمّاةٍ من الثوابت (set of named constants). استخدام الثوابت المتعدّدة يُسهّل توضيحَ نية استعمال الشيفرة أو إنشاء مجموعة حالات مختلفة. تُوفّر TypeScript كلا من الثوابت المتعددة المعتمِدة على الأعداد وتلك المُعتمِدة على السلاسل النصية كذلك. الثوابت المتعددة العددية (Numeric enums) سنبدأ بالثوابت المتعددة العددية، والتي ستكون مألوفة لمن هو آتٍ من لغات البرمجة الأخرى. يُمكن تعريف ثابت متعدّد بالكلمة المفتاحية ‎enum‎: enum Direction { Up = 1, ...

الدوال من المرتبة الأعلى (Higher-Order Functions) و Lambdas

الدوال من المرتبة الأعلى (Higher-Order Functions) وهي الدوال التي تقبل دوالًا أخرى كمعاملاتٍ (parameters) لها، أو تلك التي تُعيد (return) دوالًا أخرى كنتيجة لها، وكمثالٍ عنها لنأخذ الدالة lock()‎، وهي الدالة التي تقبل كائنًا lock ودالةً أخرى، حيث ستحصلُ الدالة على الكائن lock وتُنفِّذُ الدالةَ الوسيطةَ ثم تُحرِّر القفل في النهاية، كما في الشيفرة: fun <T> lock(lock: Lock, body: () -> T): T { lock.lock() try { ...

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

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

نظرة خاطفة على وحدة التحكم في ريلز

ستتعرف في هذا الدليل على كيفية عمل وحدات التحكم (Controller) وكيفية ملاءمتها مع دورة الطلب (request cycle) في التطبيق الخاص بك. بعد قراءة هذا الدليل، ستتعلم: كيفية اتباع تدفق الطلب من خلال وحدة تحكم. كيفية تقييد المعاملات التي مُرّرت إلى وحدة التحكم الخاصة بك. كيف ولماذا تخزَّن البيانات في الجلسة (session) أو ملفات تعريف الارتباط (cookies). كيفية العمل مع المرشحات (filters) لتنفيذ التعليمات البرمجية أثناء معالجة الطلب. كيفية استخدام استيثاق HTTP المضمن في وحدة التحكم. كيفية تدفق البيانات مباشرة إلى ...

الأصناف (Classes) والوراثة (Inheritance) في لغة Kotlin

تُستخدم الكلمة المفتاحيّة class للتصريح (declaration) عن الصنف بالصيغة الآتية (اسم الصنف Invoice): class Invoice { } ويحتوي التصريح على اسم الصنف (class name) وترويسة الصنف (class header) (والتي تُحدِّد معاملات النوع والباني الأساسيّ ...إلخ.) وبُنية الصنف (class body) محاطةً بالقوسين {}، وإن كلًا من ترويسة الصنف وبُنيته اختياريتان؛ فإذا كان الصنف خاليًا لا حاجة للأقواس، مثل: class Empty الباني (Constructor) يوجد لكلّ صنف في لغة Kotlin بانٍ رئيسيّ (primary) واحدٌ وبانٍ -أو أكثر- ثانويّ (secondary)، إذ يُعدُّ الباني الرئيسيّ جزءًا من ...

Arduino/Topics

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

أنماط الشيفرات المُتعارَف عليها ما بين مبرمجي 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 ...

المصفوفات في PHP

المصفوفة في PHP هي خريطة (map) مرتّبة، والخريطة هي نوع ترتبط فيه القيم مع المفاتيح، ولها استخدامات عديدة، فيمكن التعامل معها كمصفوفة أو قائمة (vector) أو جدول hash (نوع من الخرائط) أو قاموس (dictionary) أو مجموعة (collection) أو مكدس (stack) أو طابور (queue) وغير ذلك، حتى أن قيم المصفوفة يمكن أن تكون مصفوفات أخرى، ممّا يسمح بإنشاء مصفوفات متعددة الأبعاد. لن نشرح جميع هذه الأنواع في هذا التوثيق، لكن ستجد مثالًا واحدًا على الأقل لكلٍ منها. الصياغة إنشاء المصفوفات باستخدام ...

المصفوفات في PHP

المصفوفة في PHP هي خريطة (map) مرتّبة، والخريطة هي نوع ترتبط فيه القيم مع المفاتيح، ولها استخدامات عديدة، فيمكن التعامل معها كمصفوفة أو قائمة (vector) أو جدول hash (نوع من الخرائط) أو قاموس (dictionary) أو مجموعة (collection) أو مكدس (stack) أو طابور (queue) وغير ذلك، حتى أن قيم المصفوفة يمكن أن تكون مصفوفات أخرى، ممّا يسمح بإنشاء مصفوفات متعددة الأبعاد. لن نشرح جميع هذه الأنواع في هذا التوثيق، لكن ستجد مثالًا واحدًا على الأقل لكلٍ منها. الصياغة إنشاء المصفوفات باستخدام ...

الحصول على مُدخلات المستخدم في Bash

استخدام أمر read أمر read هو الأمر المتمم لأمريْ echo و printf، وبنيته اللغوية كالتالي: read [options] NAME1 NAME2 ... NAMEN يُقرأ سطر واحد من المُدخل القياسي (standard input) أو من واصف ملف (file descriptor) أُدخِل كوسيط لخيار u-، وتُعيَّن أول كلمة من السطر لأول اسم NAME1، والثانية للاسم الثاني NAME2 وهكذا، ثم تُعيَّن الكلمات المتبقية وفاصلاتها المتداخلة (intervening seperators) إلى الاسم الأخير NAMEN، أما إن كانت الكلمات المقروءة من مجرى الدخل أقل من الأسماء فتعيَّن قيم فارغة لتلك الأسماء. تُستخدم ...

خط أنابيب الأصول في ريلز

يغطّي هذا الدليل أنبوب الأصول. ستتعلم بعد قراءة هذا الدليل: ماهيّة أنبوب الأصول وماذا يفعل. كيفيّة تنظيم أصول تطبيقك بشكل صحيح. فوائد أنبوب الأصول. كيفيّة إضافة معالج مسبق (pre-processor) إلى الأنبوب. كيفيّة وضع الأصول مع جوهرة في حزمة. ما هو أنبوب الأصول؟ يوفّر أنبوب الأصول إطارًا لسَلسَلة وتصغير أو ضغط أصول JavaScript و CSS. كما أنه يضيف القدرة على كتابة هذه الأصول بلغات أخرى ومعالجات مسبقة مثل CoffeeScript و Sass و ERB. يسمح للأصول في تطبيقك أن تُدمج تلقائيًّا مع ...

الأنواع المتقدمة في TypeScript

أنواع التقاطع (Intersection Types) يجمعُ نوعُ تقاطعٍ عدّة أنواع في نوع واحد. يسمح هذا بجمع الأنواع الموجودة في نوع واحد يملك جميع الميّزات التي تحتاج إليها. مثلًا، النوعُ ‎Person & Serializable & Loggable‎ هو من النّوع ‎Person‎ والنّوع ‎Serializable‎ والنّوع ‎Serializable‎، كلّها مجموعة في نفس النّوع. هذا يعني أنّ كائنًا ما من هذا النوع سيحتوي على جميع عناصر الأنواع الثلاثة. تُستعمل أنواع التّقاطع عادةً في المخاليط (mixins) والمبادئ الأخرى التي قد تكون غريبة على البرمجة كائنيّة التوجه العاديّة (وهي متواجدة ...

التعامل مع نظام الملفات في Node.js

الاستقرار: 2 - مستقر توفِّر الوحدة fs‎ واجهةً برمجيةً للتعامل مع نظام الملفات بطريقة قريبة جدًا من دوال POSIX القياسية. يمكن الوصول إلى هذه الوحدة باستعمال الأمر التالي: const fs = require('fs'); جميع عمليات نظام الملفات لها أشكال متزامنة وغير متزامنة. تأخذ الأشكال المتزامنة دالة رد نداء مكملة دومًا وتُمرَّر إليها كآخر وسيط. تعتمد الوسائط المُمرَّرة إلى دالة رد النداء المكملة تلك على التابع نفسه، ولكن الوسيط الأول فيها محجوزٌ دومًا للاستثناء. إن اكتملت العملية بنجاح، فستكون قيمة هذا الوسيط null‎ ...