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

من موسوعة حسوب
< Ruby‏ | Kernel
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>require‎</code> الخاص بالصنف <code>Kernel</code> في روبي}}</noinclude> تصنيف: Ruby تصن...')
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Kernel]]
 
[[تصنيف: Ruby Kernel]]
بحمل التابع require المُعطى <code>name</code>،ويعيد <code>true</code> في حال نجح في ذلك، أو <code>false</code> إذا كانت الميزة مُحملة (feature) .سلفًا
+
بحمل التابع <code>require</code> الوسيط المُعطى <code>name</code>، ويعيد <code>true</code> في حال نجح في ذلك، أو <code>false</code> إذا كانت الميزة (feature) مُحملة سلفًا.
إذا لم يكن بالإمكان حل اسم الملف إلى مسار مطلق (absolute path)، فسيتم البحث عنه في المجلدات االمدرجة في <code>$LOAD_PATH</code> (<code>$:</code>).
 
إذا كان لاسم الملف الامتداد ".rb" ، فسيُحمّل كملف مصدري؛ وإذا كان الامتداد ".so" أو ".o" أو ".dll" أو الامتداد الافتراضي للمكتبات المشتركة لنظام التشغيل الحالي، فستُحمّل روبي المكتبة المشتركة كإضافة.  خلاف ذلك، ستحاول روبي أن تضيف للاسم الامتدادات ".rb" أو ".so" ...، وهكذا حتى تعثر على الملف.  إذا تعذر العثور على الملف المسمى، سيُطلق <code>LoadError</code>.
 
بالنسبة لملحقات روبي، قد يستخدم اسم الملف المُعطى أي امتداد من امتدادات المكتبة المشتركة.  على سبيل المثال ، في نظام لينيكس، الامتداد هو "socket.so" وسيحمّل التابع <code>require 'socket.dll'</code> الملحقة socket .
 
يُضاف المسار المطلق للملف المحمّل إلى <code>$LOADED_FEATURES</code> (<code>$"</code>).  لن يتم تحميل الملف مرة أخرى إذا كان مساره موجودًا سلفًا في <code>$"</code>.  على سبيل المثال، لن يقوم <code>require 'a'; require './a'</code> بتحميل <code>a.rb</code> مرة أخرى.
 
  
ستكون كل الثوابت والمتغيرات الكلية (globals) الموجودة في الملف المصدري المحمل متاحة في مجال أسماء البرنامج المُستدعي. ومع ذلك، لن تنتشر المتغيرات المحلية في بيئة التحميل.
+
إذا لم يكن بالإمكان حل اسم الملف إلى مسار مطلق (absolute path)، فسيتم البحث عنه في المجلدات االمدرجة في ‎<code>$LOAD_PATH</code> (<code>$:</code>)‎.
 +
 
 +
إذا كان لاسم الملف الامتداد <code>"‎.rb"</code> ، فسيُحمّل كملف مصدري؛ وإذا كان الامتداد هو "‎<code>.so</code>" أو "‎<code>.o</code>" أو "‎<code>.dll</code>" أو الامتدادّ الافتراضي للمكتبات المشتركة لنظام التشغيل الحالي، فستُحمّل روبي المكتبة المشتركة كإضافة.  خلاف ذلك، ستحاول روبي أن تضيف للاسم الامتدادات "<code>‎.rb</code>" أو "‎<code>.so</code>" ...، وهكذا حتى تعثر على الملف.  إذا تعذر العثور على الملف المسمى، سيُطلق الخطأ <code>LoadError</code>.
 +
 
 +
بالنسبة لملحقات روبي، قد يستخدم اسم الملف المُعطى أي امتداد من امتدادات المكتبة المشتركة.  على سبيل المثال، في نظام لينيكس، الامتداد هو "<code>socket.so</code>" وسيُحمّل التعبير<code>require 'socket.dll'‎</code> الملحقة socket .
 +
 
 +
يُضاف المسار المطلق للملف المحمّل إلى ‎<code>$LOADED_FEATURES</code> (<code>$"</code>)‎.  لن يتم تحميل الملف مرة أخرى إذا كان مساره موجودًا سلفًا في ‎‎<code>$"‎</code>.  على سبيل المثال، لن يقوم التعبير <code>require 'a'; require './a'‎</code> بتحميل <code>a.rb</code> مرة أخرى.
 +
 
 +
ستكون كل الثوابت والمتغيرات الكلية (globals) الموجودة في الملف المصدري المُحمل متاحة في مجال أسماء البرنامج المُستدعي (calling program). لكن لن تنتشر المتغيرات المحلية في بيئة التحميل.
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">require(name) → true or false‎</syntaxhighlight>
 
<syntaxhighlight lang="ruby">require(name) → true or false‎</syntaxhighlight>
 
==المعاملات==
 
==المعاملات==
 
===<code>name‎</code>===
 
===<code>name‎</code>===
 
+
اسم الملف المراد تحميله.
 
 
 
==القيمة المُعادة==
 
==القيمة المُعادة==
 +
يعيد  التابع <code>require</code> القيمة <code>true</code> في حال نجح في التحميل، أو <code>false</code> خلاف ذلك.
  
 
==أمثلة==
 
==أمثلة==
مثال على استخدام التابع <code>require‎</code>:
+
مثال على استخدام التابع <code>require‎</code>:<syntaxhighlight lang="ruby">require "my-library.rb"
<syntaxhighlight lang="ruby">require "my-library.rb"
 
 
require "db-driver"‎</syntaxhighlight>
 
require "db-driver"‎</syntaxhighlight>
 
==انظر أيضا==
 
==انظر أيضا==
* التابع <code>[[Ruby/Kernel/readlines|readlines]]</code>: يعيد التابع readlines مصفوفة تحتوي الأسطر المُعادة من استدعاء <code>Kernel.gets( sep )</code> حتى نهاية الملف.
+
*التابع <code>[[Ruby/Kernel/require relative|require_relative]]</code>: عند استدعاء هذا التابع ستحاول روبي تحميل المكتبة المسماة في الوسيط المعطى <code>string</code>.
* التابع <code>[[Ruby/Kernel/require_relative|require_relative]]</code>: عند استدعاء هذا التابع ستحاول روبي تحميل المكتبة المسماة في الوسيط المعطى string نسبة إلى مسار الملف المطلوب.  إذا تعذر تحديد مسار الملف، سيُطلق خطأ <code>LoadError</code>. إذا تم تحميل ملف ستُعاد القيمة <code>true</code>، وإلا فستُعاد false على خلاف ذلك.
 
 
 
 
==مصادر==
 
==مصادر==
 
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-require قسم  التابع require‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]
 
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-require قسم  التابع require‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]

مراجعة 15:41، 22 أكتوبر 2018

بحمل التابع require الوسيط المُعطى name، ويعيد true في حال نجح في ذلك، أو false إذا كانت الميزة (feature) مُحملة سلفًا.

إذا لم يكن بالإمكان حل اسم الملف إلى مسار مطلق (absolute path)، فسيتم البحث عنه في المجلدات االمدرجة في ‎$LOAD_PATH ($:)‎.

إذا كان لاسم الملف الامتداد "‎.rb" ، فسيُحمّل كملف مصدري؛ وإذا كان الامتداد هو "‎.so" أو "‎.o" أو "‎.dll" أو الامتدادّ الافتراضي للمكتبات المشتركة لنظام التشغيل الحالي، فستُحمّل روبي المكتبة المشتركة كإضافة. خلاف ذلك، ستحاول روبي أن تضيف للاسم الامتدادات "‎.rb" أو "‎.so" ...، وهكذا حتى تعثر على الملف. إذا تعذر العثور على الملف المسمى، سيُطلق الخطأ LoadError.

بالنسبة لملحقات روبي، قد يستخدم اسم الملف المُعطى أي امتداد من امتدادات المكتبة المشتركة. على سبيل المثال، في نظام لينيكس، الامتداد هو "socket.so" وسيُحمّل التعبيرrequire 'socket.dll'‎ الملحقة socket .

يُضاف المسار المطلق للملف المحمّل إلى ‎$LOADED_FEATURES ($")‎. لن يتم تحميل الملف مرة أخرى إذا كان مساره موجودًا سلفًا في ‎‎$"‎. على سبيل المثال، لن يقوم التعبير require 'a'; require './a'‎ بتحميل a.rb مرة أخرى.

ستكون كل الثوابت والمتغيرات الكلية (globals) الموجودة في الملف المصدري المُحمل متاحة في مجال أسماء البرنامج المُستدعي (calling program). لكن لن تنتشر المتغيرات المحلية في بيئة التحميل.

البنية العامة

require(name)  true or false

المعاملات

name‎

اسم الملف المراد تحميله.

القيمة المُعادة

يعيد التابع require القيمة true في حال نجح في التحميل، أو false خلاف ذلك.

أمثلة

مثال على استخدام التابع require‎:

require "my-library.rb"
require "db-driver"

انظر أيضا

  • التابع require_relative: عند استدعاء هذا التابع ستحاول روبي تحميل المكتبة المسماة في الوسيط المعطى string.

مصادر