الفرق بين المراجعتين ل"Ruby/Thread/new"

من موسوعة حسوب
< Ruby‏ | Thread
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>new‎</code> الخاص بالصنف <code>Thread</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف:...')
 
ط (مراجعة وتدقيق.)
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>new‎</code> الخاص بالصنف <code>Thread</code> في روبي}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: التابع <code>Thread.new‎</code> في روبي}}</noinclude>
 
[[تصنيف: Ruby]]
 
[[تصنيف: Ruby]]
 
[[تصنيف: 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>[[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
 
new(*args, &proc)→ thread
 
new(*args, &proc)→ thread
new(*args) { |args| ... } → thread‎</syntaxhighlight>
+
new(*args) { |args| ... } → thread‎</syntaxhighlight>سيتم تمرير كل المعاملات <code>args</code> الممررة إلى التابع <code>new</code> إلى الكتلة. سيُطلق الاستثناء <code>[[Ruby/ThreadError|ThreadError]]</code> إذا تم استدعاء <code>new</code> دون كتلة.
 +
 
 +
إذا كنت ترغب باشتقاق صنف فرعي (subclass) من <code>[[Ruby/Thread|Thread]]</code>، تأكد من استدعاء المتغير <code>super</code> داخل التابع <code>initialize</code>، وإلا سيُطلق الاستثناء <code>[[Ruby/ThreadError|ThreadError]]</code>.
 
==المعاملات==
 
==المعاملات==
 
===<code>args‎</code>===
 
===<code>args‎</code>===
===<code>&proc‎</code>===
+
المعاملات التي يراد تمريرها إلى الكتلة.
==القيمة المُعادة==
+
 
 +
===<code>proc‎</code>===
 +
كائن من النوع <code>[[Ruby/Proc|Proc]]</code>.
 +
 
 +
==القيمة المعادة==
 +
تعاد [[Ruby/Thread|مهمة فرعية]] جديدة.
 +
 
 
==أمثلة==
 
==أمثلة==
 
مثال على استخدام التابع <code>new‎</code>:
 
مثال على استخدام التابع <code>new‎</code>:
سطر 26: سطر 26:
 
Thread.new(a,b,c) { |d,e,f| arr << d << e << f }.join
 
Thread.new(a,b,c) { |d,e,f| arr << d << e << f }.join
 
arr #=> [1, 2, 3]‎</syntaxhighlight>
 
arr #=> [1, 2, 3]‎</syntaxhighlight>
==انظر أيضا==
+
==انظر أيضًا==
* التابع <code>[[Ruby/Thread/main|main]]</code>: يُعيد التابع <code>main</code> [[Ruby/Thread|المهمة الفرعية]] الرئيسية.
+
* التابع <code>[[Ruby/Thread/main|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‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 12:46، 5 ديسمبر 2018

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

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

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

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

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

المعاملات

args‎

المعاملات التي يراد تمريرها إلى الكتلة.

proc‎

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

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

تعاد مهمة فرعية جديدة.

أمثلة

مثال على استخدام التابع 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]‎

انظر أيضًا

مصادر