الفرق بين المراجعتين لصفحة: «Ruby/Thread/new»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
سطر 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>proc</code>=== | ===<code>proc</code>=== | ||
كائن من النوع <code>Proc</code> | كائن من النوع <code>[[Ruby/Proc|Proc]]</code>. | ||
==القيمة | ==القيمة المعادة== | ||
تعاد [[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>[[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
: يُعيد المهمة الفرعية الرئيسية.