الفرق بين المراجعتين ل"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
: يُعيد المهمة الفرعية الرئيسية.