الفرق بين المراجعتين ل"Ruby/Thread/new"
اذهب إلى التنقل
اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>new</code> الخاص بالصنف <code>Thread</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف:...') |
|||
سطر 3: | سطر 3: | ||
[[تصنيف: 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| | + | سيتم تمرير كل الوسائط <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>. | |
− | |||
− | |||
− | إذا كنت ترغب باشتقاق صنف فرعي (subclass) من <code>[[Ruby/Thread|Thread]]</code>، تأكد من استدعاء المتغير super داخل التابع <code>initialize</code>، وإلا سيُطلق <code>[[Ruby/ThreadError|ThreadError]]</code>. | ||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">new { ... }→ thread | <syntaxhighlight lang="ruby">new { ... }→ thread | ||
سطر 18: | سطر 16: | ||
==المعاملات== | ==المعاملات== | ||
===<code>args</code>=== | ===<code>args</code>=== | ||
− | ===<code> | + | الوسائط الممررة إلى الكتلة. |
+ | |||
+ | ===<code>proc</code>=== | ||
+ | كائن من النوع <code>Proc</code> | ||
+ | |||
==القيمة المُعادة== | ==القيمة المُعادة== | ||
+ | يعيد التابع <code>new</code> [[Ruby/Thread|مهمة فرعية]] جديدة | ||
+ | |||
==أمثلة== | ==أمثلة== | ||
مثال على استخدام التابع <code>new</code>: | مثال على استخدام التابع <code>new</code>: | ||
سطر 28: | سطر 32: | ||
==انظر أيضا== | ==انظر أيضا== | ||
* التابع <code>[[Ruby/Thread/main|main]]</code>: يُعيد التابع <code>main</code> [[Ruby/Thread|المهمة الفرعية]] الرئيسية. | * التابع <code>[[Ruby/Thread/main|main]]</code>: يُعيد التابع <code>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 في توثيق روبي الرسمي.] |
مراجعة 22:27، 5 نوفمبر 2018
ينشئ التابع new
مهمة فرعية جديدة تنفّذ الكتلة المعطاة.
سيتم تمرير كل الوسائط args
(انظر فقرة البنية العامة) الممررة إلى new
إلى الكتلة:
سيُطلق استثناء ThreadError
إذا تم استدعاء new
دون كتلة.
إذا كنت ترغب باشتقاق صنف فرعي (subclass) من Thread
، تأكد من استدعاء المتغير super
داخل التابع initialize
، وإلا سيُطلق الاستثناءThreadError
.
البنية العامة
new { ... }→ thread
new(*args, &proc)→ thread
new(*args) { |args| ... } → thread
المعاملات
args
الوسائط الممررة إلى الكتلة.
proc
كائن من النوع Proc
القيمة المُعادة
يعيد التابع new
مهمة فرعية جديدة
أمثلة
مثال على استخدام التابع 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
: يُعيد التابعmain
المهمة الفرعية الرئيسية.