الفرق بين المراجعتين لصفحة: «Ruby/Thread/new»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>new</code> الخاص بالصنف <code>Thread</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف:...' |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
| (مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة) | |||
| سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: التابع <code>new | <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|مهمة فرعية]] جديدة تنفّذ الكتلة المعطاة. | ||
==البنية العامة== | ==البنية العامة== | ||
<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> | المعاملات التي يراد تمريرها إلى الكتلة. | ||
==القيمة | |||
===<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>[[Ruby/Thread/main|main]]</code>: يُعيد [[Ruby/Thread|المهمة الفرعية]] الرئيسية. | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Thread.html#method-c-new قسم | *[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]
انظر أيضًا
- التابع
main: يُعيد المهمة الفرعية الرئيسية.