الفرق بين المراجعتين لصفحة: «Ruby/Kernel/eval»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Kernel]] | [[تصنيف: Ruby Kernel]] | ||
يقيّم (Evaluates) التابع <code>eval</code> تعبيرات روبي الموجودة في سلسلة نصية. | يقيّم (Evaluates) التابع <code>eval</code> تعبيرات روبي الموجودة في سلسلة نصية. | ||
== البنية العامة == | |||
<syntaxhighlight lang="ruby">eval(string [, binding [, filename [,lineno]]]) → obj</syntaxhighlight>إذا أعطي المعامل <code>[[Ruby/Binding|binding]]</code>، فسيُجرَى التقييم في السياق الخاص به. في حال تمرير المعاملين الاختياريين <code>filename</code> و <code>lineno</code>، فسيُستخدمان عند الإبلاغ عن أخطاء الحاصلة في الصياغة. | |||
==المعاملات== | ==المعاملات== | ||
===<code>string</code>=== | ===<code>string</code>=== | ||
سطر 11: | سطر 13: | ||
===<code>binding</code>=== | ===<code>binding</code>=== | ||
في حال | كائن من النوع <code>[[Ruby/Binding|Binding]]</code>. في حال تمريره، فسيُجرى التقييم في السياق الخاص به. | ||
===<code>filename</code>=== | ===<code>filename</code>=== | ||
يُستخدم عند الإبلاغ عن | يُستخدم عند الإبلاغ عن أخطاءٍ في الصياغة. | ||
===<code>lineno</code>=== | ===<code>lineno</code>=== | ||
يُستخدم عند الإبلاغ عن | يُستخدم عند الإبلاغ عن أخطاءٍ في الصياغة. | ||
==القيمة | ==القيمة المعادة== | ||
تُعاد نتيجة تقييم التعبير المعطى. | تُعاد نتيجة تقييم التعبير المعطى. | ||
سطر 32: | سطر 34: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضا== | ==انظر أيضا== | ||
* التابع <code>[[Ruby/Kernel/chop|chop]]</code>: يكافئ | * التابع <code>[[Ruby/Kernel/chop|chop]]</code>: يكافئ التعبير <code>($_.dup).chop!</code> ، باستثناء أنّ <code>nil</code> لا تُعاد أبدًا. | ||
* التابع <code>[[Ruby/Kernel/exec|exec]]</code>: يستبدل العملية الحالية عن طريق تشغيل الأمر الخارجي المعطى. | * التابع <code>[[Ruby/Kernel/exec|exec]]</code>: يستبدل العملية الحالية عن طريق تشغيل الأمر الخارجي المعطى. | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-eval قسم | *[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-eval قسم التابع eval في الصنف Kernel في توثيق روبي الرسمي.] |
المراجعة الحالية بتاريخ 11:43، 15 نوفمبر 2018
يقيّم (Evaluates) التابع eval
تعبيرات روبي الموجودة في سلسلة نصية.
البنية العامة
eval(string [, binding [, filename [,lineno]]]) → obj
إذا أعطي المعامل binding
، فسيُجرَى التقييم في السياق الخاص به. في حال تمرير المعاملين الاختياريين filename
و lineno
، فسيُستخدمان عند الإبلاغ عن أخطاء الحاصلة في الصياغة.
المعاملات
string
سلسلة نصية تحتوي تعبيرات روبي.
binding
كائن من النوع Binding
. في حال تمريره، فسيُجرى التقييم في السياق الخاص به.
filename
يُستخدم عند الإبلاغ عن أخطاءٍ في الصياغة.
lineno
يُستخدم عند الإبلاغ عن أخطاءٍ في الصياغة.
القيمة المعادة
تُعاد نتيجة تقييم التعبير المعطى.
أمثلة
مثال على استخدام التابع eval
:
def get_binding(str)
return binding
end
str = "hello"
eval "str + ' Fred'" #=> "hello Fred"
eval "str + ' Fred'", get_binding("bye") #=> "bye Fred"
انظر أيضا
- التابع
chop
: يكافئ التعبير ($_.dup).chop!
، باستثناء أنّnil
لا تُعاد أبدًا. - التابع
exec
: يستبدل العملية الحالية عن طريق تشغيل الأمر الخارجي المعطى.