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

من موسوعة حسوب
< Ruby‏ | Kernel
اذهب إلى التنقل اذهب إلى البحث
ط (مراجعة وتدقيق)
 
(3 مراجعات متوسطة بواسطة مستخدم واحد آخر غير معروضة)
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Kernel]]
 
[[تصنيف: Ruby Kernel]]
يقيم (Evaluates) التابع تعبيرات روبي الموجودة في سلاسل نصية. إذا أعطي الوسيط binding، والذي يجب أن يكون من النوع <code>Binding</code>، فسيُجرى التقييم في السياق الخاص بها. في حال تمرير الوسيطين الاختياريين filename و lineno، فسيُستخدمان عند الإبلاغ عن أخطاء في الصياغة.
+
يقيّم (Evaluates) التابع <code>eval</code> تعبيرات روبي الموجودة في سلسلة نصية.  
==البنية العامة==
+
 
<syntaxhighlight lang="ruby">eval(string [, binding [, filename [,lineno]]])  → obj‎</syntaxhighlight>
+
== البنية العامة ==
 +
<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>===
 +
سلسلة نصية تحتوي تعبيرات روبي.
  
 
===<code>binding‎</code>===
 
===<code>binding‎</code>===
 +
كائن من النوع <code>[[Ruby/Binding|Binding]]</code>. في حال تمريره، فسيُجرى التقييم في السياق الخاص به.
  
 
===<code>filename‎</code>===
 
===<code>filename‎</code>===
 +
يُستخدم عند الإبلاغ عن أخطاءٍ في الصياغة.
  
 
===<code>lineno‎</code>===
 
===<code>lineno‎</code>===
 +
يُستخدم عند الإبلاغ عن أخطاءٍ في الصياغة.
  
 
+
==القيمة المعادة==
==القيمة المُعادة==
+
تُعاد نتيجة تقييم التعبير المعطى.
  
 
==أمثلة==
 
==أمثلة==
سطر 28: سطر 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 قسم التابع eval‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]
+
*[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: يستبدل العملية الحالية عن طريق تشغيل الأمر الخارجي المعطى.

مصادر