نتائج البحث

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

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

الألياف (Fibers) هي حقولٌ أساسيّةٌ (primitives) تُستخدم في تنفيذ تعدّد المهام التشاركي (cooperative concurrency) للمهام الخفيفة (light weight) أي التي تستهلك جزءًا صغيرًا من الذاكرة. تعني أساسيًّا إنشاء كتل شيفرات يمكن إيقافها مؤقتًا واستئنافها، كما هو الحال مع الخيوط (threads). الفرق الأساسي في الألياف أنه لا يمكن إيقافها مؤقّتًا من قبل مهام أخرى تنفذ من قبل النظام (Preemption) وأن الجدولة (scheduling) يجب أن تتمَّ من قبل المبرمج وليس من قبل الآلة الافتراضية (virtual machine). على عكس نماذج تعدد المهام التشاركية ...

التابع Fiber.transfer في روبي

ينقل التّابع transfer التحكّم إلى ليف (fiber) آخر، أو يستأنف عمل الليف الحالي عند آخر نقطة أوقف فيها، أو يبدأه إذا لم يُستأنَف سابقًا. سيُعلَّق الليف المُستدعَى كما في استدعاء Fiber.yield. يجب عليك طلب 'fiber' قبل استخدام هذا التّابع. يعامل الليف طلب التحويل ( عبر transfer) الذي يستقبله على أنَّه نداء استئنافٍ. الوسائط المُمرَّرة من أجل التحويل تعامل كتلك المُمرَّرة من أجل الاستئناف. لا يمكنك استئناف ليفٍ حُوِّل تحكمه إلى ليفٍ آخر. سيسبّب هذا خطأ استئنافٍ مضاعفٍ. عليك إعادة تحويل ...

التابع Fiber.current في روبي

يُعيد التّابع current الليف (fiber) الحالي. يجب عليك طلب 'fiber' قبل استخدام هذا التابع. إذا لم تكن تعمل في سياق ليفٍ، فيعيد هذا التّابع الليف الجذر (root fiber). البنية العامة current() → fiber القيم المعادة يُعاد الليف الحالي، أو الليف الجذر إن لم يجري العمل آنذاك في سياق ليفٍ ما. انظر أيضا التابع to_s: يُعيد معلوماتٍ عن الليف (fiber) بشكل سلسلةٍ نصيةٍ. التابع ?alive: يُعيد القيمة true إذا كان لا يزال استئناف (أو نقل) الليف (fiber) ممكنًا. مصادر صفحة التابع ...

التابع ?Fiber.alive في روبي

يُعيد التّابع ?alive القيمة true إذا كان لا يزال استئناف (أو نقل) الليف (fiber) ممكنًا. سيُعيد هذا التَابع دائمًا القيمة false بعد انتهاء تنفيذ كتلة الليف. يجب عليك طلب 'fiber' قبل استخدام هذا التّابع. البنية العامة alive? → true or false القيم المعادة تُعاد القيمة true إذا كان لا يزال استئناف (أو نقل) الليف ممكنًا، أو تُعاد القيمة false بعد انتهاء تنفيذ كتلة الليف. انظر أيضا التابع current: يعيد الليف (fiber) الحالي. التابع to_s: يُعيد معلوماتٍ عن الليف (fiber) بشكل ...

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

يُرمى الاستثناء FiberError عند محاولة إجراء عمليّةٌ غير صحيحةٍ في الصنف Fiber، تحديدًا عند محاولة استدعاء/استئناف ليف ميِّت، أو محاولة التّوليد من الليف الجذر (root fiber)، أو استدعاء ليفٍ عبر خيوطٍ (threads). fiber = Fiber.new{} fiber.resume #=> nil fiber.resume #=> FiberError: dead fiber called مصادر صفحة الصنف FiberError في توثيق روبي الرسمي.

التابع Fiber.to_s في روبي

يُعيد التّابع to_s معلوماتٍ عن الليف (fiber) بشكل سلسلةٍ نصيةٍ. لهذا التابع اسم بديل هو: inspect. البنية العامة to_s → string القيم المعادة تُعاد سلسلةٌ نصيةٌ تحتوي معلومات عن الليف. انظر أيضا التابع current: يعيد الليف (fiber) الحالي. التابع ?alive: يُعيد القيمة true إذا كان لا يزال استئناف (أو نقل) الليف (fiber) ممكنًا. مصادر صفحة التابع to_s في الصنف Fiber في توثيق روبي الرسمي.

التابع Fiber.yield في روبي

يتحكم التّابع yield مجدَّدًا بالسياق (contex) الذي استئنَفَ عمل الليف (fiber) مُمرِّرًا أيَّ وسائط قد مُرِّرت إليه. يستأنف الليف عملية المعالجة عند هذه النقطة عندما يُستدعَى resume بعد هذا التابع. أي وسائط تُمرَّر إلى التابع resume-في الاستئناف التالي- ستكون هي القيمة التي يقيمها (evaluate)  هذا التابع Fiber.yield. البنية العامة yield(args, ...) → obj المعاملات args الوسائط المراد تمريرها. … الوسائط الأخرى الإضافية المراد تمريرها أيضًا. القيم المعادة يُعاد كائنٌ يمثل السياق الذي يتحكَّم في الليف. انظر أيضا التابع transfer: ينقل ...

التابع Fiber.resume في روبي

يستأنف التّابع resume الليف (fiber) من النقطة التي استدعُي فيها التّابع Fiber.yield آخر مرّة، أو يبدأ بتشغيله إذا كان هذا أول استدعاءٍ له. ستكون الوسائط المُمرَّرة إلى التابع resume هي قيمة التعبير Fiber.yield، أو ستُمرَّر إلى كتلة الليف على أنها معاملات للكتلة (block parameters) إذا كان هذا الاستدعاء الأوَّل. بديلًا عن هذا، يُقيَّم resume عندما يُستدعى الوسائط المُمرَّرة إلى التعبير Fiber.yield التالي داخل كتلة الليف أو إلى قيمة الكتلة إذا شُغِّلت حتى الاكتمال من دون استدعاء Fiber.yield. البنية العامة resume(args, ...

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

التابع Fiber.inspect في روبي

يُعدُّ التّابع inspect اسمًا بديلًا (alias) للتّابع to_s. البنية العامة inspect() انظر أيضا التابع to_s: يُعيد معلوماتٍ عن الليف (fiber) بشكل سلسلةٍ نصيةٍ. مصادر صفحة التابع inspect في الصنف Fiber في توثيق روبي الرسمي.

المعامل []‎ الخاص بالصنف 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‎ هذا سوف ينتج: ...

المعامل ‎[]=‎‎ الخاص بالصنف 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، أو الليف الأصلي للمهمة الفرعية الحالية ...

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

يُعيد التابع keys مصفوفة من أسماء المتغيرات محلية الليف (fiber-local variables) على هيئة رموز. البنية العامة keys→ array‎ القيمة المعادة تعاد مصفوفة من أسماء المتغيرات محلية الليف. أمثلة مثال على استخدام التابع keys‎: thr = Thread.new do Thread.current[:cat] = 'meow' Thread.current["dog"] = 'woof' end thr.join #=> #<Thread:0x401b3f10 dead> thr.keys #=> [:dog, :cat]‎ انظر أيضًا التابع key?‎: يتحقق إن كانت السلسلة النصية أو الرمز المعطى موجود على هيئة متغير محلي الليف (fiber-local variable). مصادر قسم التابع keys‎ في الصنف Thread‎ ...

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

يتحقق التابع key?‎ إن كانت السلسلة النصية أو الرمز المعطى موجود على هيئة متغير محلي الليف (fiber-local variable). البنية العامة key?(sym)→ true or false‎ المعاملات sym‎ سلسلة نصية أو رمز يراد التحقق منه. القيمة المعادة تعاد القيمة true إن كانت السلسلة النصية أو الرمز المعطى موجود على هيئة متغير محلي الليف (fiber-local variable)، أو تعاد القيمة false خلاف ذلك. أمثلة مثال على استخدام التابع key?‎: me = Thread.current me[:oliver] = "a" me.key?(:oliver) #=> true me.key?(:stanley) #=> false‎ انظر أيضا ...

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

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

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

يُعيد التابع thread_variables مصفوفة من أسماء المتغيرات المحلية في المهمة الفرعية (thread-local) على شكل رموز. لاحظ أن هذه المتغيرات ليست محلية الألياف (fiber local). يرجى الاطلاع على صفحة المعامل [] والتابع thread_variable_get لمزيد من التفاصيل. البنية العامة thread_variables→ array‎ القيمة المعادة تعاد مصفوفة من أسماء المتغيرات المحلية في المهمة الفرعية (thread-local) على شكل رموز. أمثلة مثال على استخدام التابع thread_variables‎: thr = Thread.new do Thread.current.thread_variable_set(:cat, 'meow') Thread.current.thread_variable_set("dog", 'woof') end thr.join ...

التابع 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?‎: ...

DOM الافتراضي والكائنات الداخلية في React

ما هو DOM الافتراضي (Virtual DOM)؟ DOM الافتراضي (أو اختصارًا VDOM) هو مفهوم برمجي نحتفظ فيه بالتمثيل المثالي أو الافتراضي لواجهة المستخدم ضمن الذاكرة مع مزامنته مع DOM الحقيقي عن طريق مكتبة مثل React DOM. تُدعى هذه العمليّة بالمطابقة (reconciliation). تُمكِّن هذه الطريقة واجهة برمجة التطبيق التصريحية في React، حيث تُخبِر React الحالة التي تريد أن تكون بها واجهة المستخدم لديك، فتحرص React على مطابقة DOM مع تلك الحالة. يُجرِّد هذا التعامل مع الخاصيّات، ومعالجة الأحداث، وتحديث DOM اليدوي الذي ...

Ruby/Topics

تثبيت روبي توجد طرائق عدَّة لتنزيل وتثبيت روبي على كل منصة وهي: إمَّا استعمال أنظمة مدير الحزم، أو باستعمال المثبِّتات التلقائية، أو باستعمال مدراء روبي. هنالك طريقة أخرى يمكنك بالتأكيد استعمالها لتثبيت روبي وتصريف شيفراتها وهي بنائها من الشيفرة المصدرية مباشرةً. حول روبي يوفر هذا القسم لمحة سريعة عن لغة روبي ونشأتها، وتطورها، ومزاياها التي انفردت بها عن اللغات الأخرى، والتنفيذات المختلفة التي تملكها. البنية العامة بنية اللغة تعد روبي مزيجًا من اللغات البرمجية التالية: Perl، و Smalltalk، و Eiffel، ...

التحسينات في روبي

إن ميّزة الأصناف المفتوحة في لغة روبي تسمح لك بإعادة تعريف أو إضافة وظائف إلى أصناف معرّفة مسبقًا. وهذا ما يسمى بمصطلح "ترقيع القرد" (monkey patch). المشكلة هنا أنَّ تعديلات من هذا النوع تكون مرئيّة على المستوى العام (global)، وبالتالي جميع مستخدمي الصنف المرقّع قادرون على رؤية هذه التغييرات، ممّا قد يسبّب تأثيرات جانبيّة غير محسوبة أو حتى عطب في البرامج. تأتي التحسينات هنا لتقلّل أثر ترقيع القرد على مستخدمي الصنف الآخرين، إذ تقدّم طريقة لتوسيع الصنف محليًّا. وإليك مثال ...

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