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

من موسوعة حسوب
< Ruby‏ | Thread
اذهب إلى التنقل اذهب إلى البحث
ط (مراجعة وتدقيق.)
 
سطر 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>، تأكد من استدعاء المتغير <code>super</code> داخل التابع <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>Proc</code>
+
كائن من النوع <code>[[Ruby/Proc|Proc]]</code>.
  
==القيمة المُعادة==
+
==القيمة المعادة==
يعيد التابع <code>new</code> [[Ruby/Thread|مهمة فرعية]] جديدة
+
تعاد [[Ruby/Thread|مهمة فرعية]] جديدة.
  
 
==أمثلة==
 
==أمثلة==
سطر 30: سطر 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|المهمة الفرعية]] الرئيسية.
 
==مصادر==
 
==مصادر==
*[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]‎

انظر أيضًا

مصادر