الفرق بين المراجعتين لصفحة: «Ruby/Kernel/eval»
لا ملخص تعديل |
لا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Kernel]] | [[تصنيف: Ruby Kernel]] | ||
يقيّم (Evaluates) التابع <code>eval</code> تعبيرات روبي الموجودة في سلسلة نصية. إذا أعطي الوسيط <code>binding</code>، والذي يجب أن يكون من النوع <code>Binding</code>، فسيُجرى التقييم في السياق الخاص بها. في حال تمرير الوسيطين الاختياريين <code>filename</code> و <code>lineno</code>، فسيُستخدمان عند الإبلاغ عن أخطاء في الصياغة. | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">eval(string [, binding [, filename [,lineno]]]) → obj</syntaxhighlight> | <syntaxhighlight lang="ruby">eval(string [, binding [, filename [,lineno]]]) → obj</syntaxhighlight> | ||
==المعاملات== | ==المعاملات== | ||
===<code>string</code>=== | ===<code>string</code>=== | ||
سلسلة نصية تحتوي تعبيرات روبي. | |||
===<code>binding</code>=== | ===<code>binding</code>=== | ||
في حال تمريره فسيُجرى التقييم في السياق الخاص به. | |||
===<code>filename</code>=== | ===<code>filename</code>=== | ||
يُستخدم عند الإبلاغ عن أخطاء في الصياغة. | |||
===<code>lineno</code>=== | ===<code>lineno</code>=== | ||
يُستخدم عند الإبلاغ عن أخطاء في الصياغة. | |||
==القيمة المُعادة== | ==القيمة المُعادة== | ||
تُعاد نتيجة تقييم التعبير المعطى. | |||
==أمثلة== | ==أمثلة== | ||
سطر 28: | سطر 32: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضا== | ==انظر أيضا== | ||
* التابع <code>[[Ruby/Kernel/chop|chop]]</code>: يكافئ | * التابع <code>[[Ruby/Kernel/chop|chop]]</code>: يكافئ التابع <code>chop</code> التعبير <code>($_.dup).chop!</code> ، باستثناء أنّ <code>nil</code> لا تُعاد أبدًا. انظر صفحة <code>!String#chop</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 قسم التابع eval في الصنف Kernel في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-eval قسم التابع eval في الصنف Kernel في توثيق روبي الرسمي.] |
مراجعة 18:00، 21 أكتوبر 2018
يقيّم (Evaluates) التابع eval
تعبيرات روبي الموجودة في سلسلة نصية. إذا أعطي الوسيط binding
، والذي يجب أن يكون من النوع Binding
، فسيُجرى التقييم في السياق الخاص بها. في حال تمرير الوسيطين الاختياريين filename
و lineno
، فسيُستخدمان عند الإبلاغ عن أخطاء في الصياغة.
البنية العامة
eval(string [, binding [, filename [,lineno]]]) → obj
المعاملات
string
سلسلة نصية تحتوي تعبيرات روبي.
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
: يكافئ التابعchop
التعبير ($_.dup).chop!
، باستثناء أنّnil
لا تُعاد أبدًا. انظر صفحة!String#chop
. - التابع
exec
: يستبدل العملية الحالية عن طريق تشغيل الأمر الخارجي المعطى.