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