الفرق بين المراجعتين ل"Ruby/Kernel/eval"

من موسوعة حسوب
< Ruby‏ | Kernel
اذهب إلى التنقل اذهب إلى البحث
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Kernel]]
 
[[تصنيف: Ruby Kernel]]
يقيم (Evaluates) التابع تعبيرات روبي الموجودة في سلاسل نصية. إذا أعطي الوسيط binding، والذي يجب أن يكون من النوع <code>Binding</code>، فسيُجرى التقييم في السياق الخاص بها. في حال تمرير الوسيطين الاختياريين filename و lineno، فسيُستخدمان عند الإبلاغ عن أخطاء في الصياغة.
+
يقيّم (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>($_.dup).chop!</code> ، باستثناء أنّ <code>nil</code> لا تُعاد أبدًا. انظر صفحة <code>String#chop!</code>. متوفر فقط عند تحديد خيار سطر الأوامر -p/-n.
+
* التابع <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: يستبدل العملية الحالية عن طريق تشغيل الأمر الخارجي المعطى.

مصادر