الفرق بين المراجعتين لصفحة: «Ruby/Thread/new»

من موسوعة حسوب
< Ruby‏ | Thread
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>new‎</code> الخاص بالصنف <code>Thread</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف:...'
 
لا ملخص تعديل
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Thread]]
[[تصنيف: Ruby Thread]]
ينشئ التابع <code>new</code> [[Ruby/Thread|مهمة فرعية]] جديدة تقوم بتنفيذ الكتلة المعطاة.
ينشئ التابع <code>new</code> [[Ruby/Thread|مهمة فرعية]] جديدة تنفّذ الكتلة المعطاة.


سيتم تمرير كل الوسائط <code>args</code> (انظر فقرة البنية العامة) الممررة إلى <code>[[Ruby/Thread/new|::new]]</code> إلى الكتلة:
سيتم تمرير كل الوسائط <code>args</code> (انظر فقرة البنية العامة) الممررة إلى <code>[[Ruby/Thread/new|new]]</code> إلى الكتلة:


سيُطلق استثناء <code>[[Ruby/ThreadError|ThreadError]]</code> إذا تم استدعاء <code>[[Ruby/Thread/new|new]]</code> دون كتلة.


 
إذا كنت ترغب باشتقاق صنف فرعي (subclass) من <code>[[Ruby/Thread|Thread]]</code>، تأكد من استدعاء المتغير <code>super</code> داخل التابع <code>initialize</code>، وإلا سيُطلق الاستثناء<code>[[Ruby/ThreadError|ThreadError]]</code>.
سيُطلق استثناء <code>[[Ruby/ThreadError|ThreadError]]</code> إذا تم استدعاء <code>[[Ruby/Thread/new|::new]]</code> دون كتلة.
 
إذا كنت ترغب باشتقاق صنف فرعي (subclass) من <code>[[Ruby/Thread|Thread]]</code>، تأكد من استدعاء المتغير super داخل التابع <code>initialize</code>، وإلا سيُطلق <code>[[Ruby/ThreadError|ThreadError]]</code>.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">new { ... }→ thread
<syntaxhighlight lang="ruby">new { ... }→ thread
سطر 18: سطر 16:
==المعاملات==
==المعاملات==
===<code>args‎</code>===
===<code>args‎</code>===
===<code>&proc‎</code>===
الوسائط الممررة إلى الكتلة.
 
===<code>proc‎</code>===
كائن من النوع <code>Proc</code>
 
==القيمة المُعادة==
==القيمة المُعادة==
يعيد التابع <code>new</code> [[Ruby/Thread|مهمة فرعية]] جديدة
==أمثلة==
==أمثلة==
مثال على استخدام التابع <code>new‎</code>:
مثال على استخدام التابع <code>new‎</code>:
سطر 28: سطر 32:
==انظر أيضا==
==انظر أيضا==
* التابع <code>[[Ruby/Thread/main|main]]</code>: يُعيد التابع <code>main</code> [[Ruby/Thread|المهمة الفرعية]] الرئيسية.
* التابع <code>[[Ruby/Thread/main|main]]</code>: يُعيد التابع <code>main</code> [[Ruby/Thread|المهمة الفرعية]] الرئيسية.
* التابع <code>[[Ruby/Thread/pass|pass]]</code>: يعطي التابع <code>pass</code> إلى مُجدوِل [[Ruby/Thread|المهمة الفرعية]] تلميحًا لتمرير التنفيذ إلى [[Ruby/Thread|مهمة فرعية]] أخرى. مسألة تبديل [[Ruby/Thread|المهمة الفرعية]] قيد التشغيل من عدمها تعتمد على نظام التشغيل والمعالج المستخدمين.
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Thread.html#method-c-new قسم  التابع new‎ في الصنف Thread‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Thread.html#method-c-new قسم  التابع new‎ في الصنف Thread‎ في توثيق روبي الرسمي.]

مراجعة 22:27، 5 نوفمبر 2018

ينشئ التابع new مهمة فرعية جديدة تنفّذ الكتلة المعطاة.

سيتم تمرير كل الوسائط args (انظر فقرة البنية العامة) الممررة إلى new إلى الكتلة:

سيُطلق استثناء ThreadError إذا تم استدعاء new دون كتلة.

إذا كنت ترغب باشتقاق صنف فرعي (subclass) من Thread، تأكد من استدعاء المتغير super داخل التابع initialize، وإلا سيُطلق الاستثناءThreadError.

البنية العامة

new { ... } thread
new(*args, &proc) thread
new(*args) { |args| ... }  thread

المعاملات

args‎

الوسائط الممررة إلى الكتلة.

proc‎

كائن من النوع Proc

القيمة المُعادة

يعيد التابع new مهمة فرعية جديدة

أمثلة

مثال على استخدام التابع new‎:

arr = []
a, b, c = 1, 2, 3
Thread.new(a,b,c) { |d,e,f| arr << d << e << f }.join
arr #=> [1, 2, 3]‎

انظر أيضا

مصادر