نتائج البحث
اذهب إلى التنقل
اذهب إلى البحث
الصنف IOError في روبي
يُطلق الاستثناء IOError عند فشل عملية إدخال/إخراج (IO operation) في روبي. File.open("/etc/hosts") {|f| f << "example"}
#=> IOError: not opened for writing
File.open("/etc/hosts") {|f| f.close; f.read }
#=> IOError: closed stream
تذكر أنَّ فشل بعض عمليات الإدخال/الإخراج قد يؤدي إلى إطلاق الاستثناء SystemCallError، وهذا الاستثناء ليس متفرع من الصنف IOError. File.open("does/not/exist")
#=> Errno::ENOENT: No such file or directory - does/not/exist
مصادر صفحة الصنف IOError في توثيق روبي الرسمي.
التابع IO.close_read في روبي
يغلق التابع close_read طرف القراءة الخاص بمجرى د/خ مزدوج (duplex)؛ أي تلك المجاري التي تحتوي على مجريي قراءة وكتابة، مثل الأنابيب (pipes). سيُطلق الاستثناء IOError إن لم يكن المجرى مزدوجًا. أصبحت روبي تتجاهل استدعاء هذا التابع على مجاري د/خ المغلقة منذ الإصدار 2.3. البنية العامة close_read → nil
القيمة المعادة تعاد القيمة nil بعد تنفيذ العملية. أمثلة مثال على استخدام التابع close_read: f = IO.popen("/bin/sh","r+")
f.close_read
f.readlines
ناتج تنفيذ هذا المثال هو: prog.rb:3:in `readlines': not opened for reading (IOError)
from prog.rb:3
انظر أيضًا التابع close_write: يغلق ...
التابع IO.close_write في روبي
يغلق التابع close_write طرف الكتابة الخاص بمجرى د/خ مزدوج (duplex)؛ أي تلك المجاري التي تحتوي على مجريي قراءة وكتابة، مثل الأنابيب (pipes). سيُطلق الاستثناء IOError إن لم يكن المجرى مزدوجًا. أصبحت روبي تتجاهل استدعاء هذا التابع على مجاري د/خ المغلقة منذ الإصدار 2.3. البنية العامة close_write→ nil
القيمة المعادة تعاد القيمة nil بعد تنفيذ العملية. أمثلة مثال على استخدام التابع close_write: f = IO.popen("/bin/sh","r+")
f.close_write
f.print "nowhere"
ناتج تنفيذ هذه الشيفرة هو: prog.rb:3:in `write': not opened for writing (IOError)
from prog.rb:3:in `print'
from prog.rb:3
...
التابع IO.close في روبي
يغلق التابع close المجرى الذي استدعي معه ويرسل (flushes) أي كتابات مُعلّقة إلى نظام التشغيل. لن يكون المجرى متاحًا لأية عمليات إضافية على البيانات؛ وفي حال محاولة إجراء مثل تلك العمليات، فسيُطلَق الخطأ IOError. يتم إغلاق مجاري د/خ تلقائيًا من طرف جامع المهملات (garbage collector). في حال فتح مجرى د/خ بواسطة التابع popen، فسيعيّن التابع close قيمة $?. أصبحت روبي تتجاهل استدعاء هذا التابع على مجاري د/خ المغلقة منذ الإصدار 2.3. البنية العامة close→ nil
القيمة المعادة تعاد القيمة nil بعد ...
الصنف EOFError في روبي
يٌطلَق الخطأ EOFError من طرف بعض عمليات الصنف IO عندما تصل إلى نهاية الملف. تنقسم أغلب توابع الصنف IO -فيما يتعلق بالوصول إلى نهاية الملف- إلى قسمين: الأول يعيد القيمة nil عند الوصول إلى نهاية الملف، والآخر يطلق الخطأ EOFError عند الوصول إلى نهاية الملف. الصنف EOFError هو صنف فرعي من الصنف IOError. file = File.open("/etc/hosts")
file.read
file.gets #=> nil
file.readline #=> EOFError: الوصول إلى نهاية الملف
مصادر الصنف EOFError في توثيق روبي الرسمي.
التابع IO.autoclose= في روبي
يُعيّن التابع autoclose عند استدعائه بالشكل autoclose = bool قيمة راية الإغلاق التلقائي (auto-close flag) إلى القيمة bool المنطقية. البنية العامة autoclose = bool → true or false
القيمة المعادة تعاد قيمة منطقية تمثل قيمة راية الإغلاق التلقائي بعد ضبطها. أمثلة مثال على استخدام التابع autoclose=: f = open("/dev/null")
IO.for_fd(f.fileno)
# ...
f.gets # may cause IOError
f = open("/dev/null")
IO.for_fd(f.fileno).autoclose = true
# ...
f.gets # won't cause IOError
انظر أيضًا التابع autoclose?: يتحقق إن كان واصف الملف الأساسي لمجرى معين سيُغلق تلقائيًا عند الانتهاء منه. التابع closed?: ...
التابع File.to_path في روبي
يعيد التابع to_path سلسلة نصية تمثِّل المسار الذي استُعمِل لإنشاء الملف الذي استدعي معه. لا يعمل هذا التابع على توحيد شكل وبنية المسار (normalize). قد لا يشير اسم المسار إلى الملف المقابل للملف المعطى. على سبيل المثال، يصبح اسم المسار خاويًا (void) عندما يُنقَل أو يحذف الملف. يرمي هذا التابع الاسثناء IOError للملف المعطى إذا كان قد أنشئ باستعمال File::Constants::TMPFILE لأنه لا يملك اسم مسارٍ. البنية العامة to_path → filename
القيمة المعادة تعاد سلسلة نصية تمثِّل المسار الذي استُعمِل لإنشاء الملف ...
التابع IO.each_byte في روبي
يستدعي التابع each_byte الكتلة المعطاة على كل بايت (0..255) في المجرى الذي استدعي معه. يجب أن يكون المجرى مفتوحًا في وضعية القراءة، وإلا سيُطلق الاستثناء IOError. في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك. البنية العامة each_byte {|byte| block } → ios
each_byte→ an_enumerator
القيمة المعادة يعاد المجرى المعطى بعد تنفيذ الكتلة block على كل بايت من بايتاته، أو يعاد كائن من الصنف Enumerator في حال لم تُعطَ أية كتلة. أمثلة مثال على استخدام التابع ...
التابع File.path في روبي
يعيد التابع path سلسلة نصية تمثِّل المسار الذي استُعمِل لإنشاء الملف الذي استدعي معه. لا يعمل هذا التابع على توحيد شكل وبنية المسار (normalize). قد لا يشير اسم المسار إلى الملف المقابل للملف المعطى. على سبيل المثال، يصبح اسم المسار خاويًا (void) عندما يُنقَل أو يحذف الملف. يرمي هذا التابع الاسثناء IOError للملف المعطى إذا كان قد أنشئ باستعمال File::Constants::TMPFILE لأنه لا يملك اسم مسارٍ. البنية العامة path → filename
to_path → filename
القيمة المعادة تعاد سلسلة نصية تمثِّل المسار الذي استُعمِل ...
التابع IO.each_char في روبي
يستدعي التابع each_char الكتلة المعطاة على كل محرف في المجرى الذي استدعي معه. يجب أن يكون المجرى مفتوحًا في وضعية القراءة، وإلا سيُطلق الاستثناء IOError. في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك. البنية العامة each_char {|c| block } → ios
each_char→ an_enumerator
القيمة المعادة يعاد المجرى المعطى بعد تنفيذ الكتلة block على كل محرف من محارفه، أو يعاد كائن من الصنف Enumerator في حال لم تُعطَ أية كتلة. أمثلة مثال على استخدام التابع each_char: ...
التابع ARGF.eof? في روبي
يتحقق التابع eof? إذا بلغ الملف الحالي نهايته في ARGF؛ أي أنّه لم تعد هناك أي بيانات لقراءتها. ينبغي أن يكون المجرى مفتوحًا من قبل للقراءة، وإلا فسيُطلق الخطأ IOError. البنية العامة eof? → true or false
القيم المعادة تعاد القيمة true إن وصل الملف المفتوح حاليًا للقراءة إلى نهايته، أو القيمة false خلاف ذلك. أمثلة مثال على استخدام التابع eof?: $ echo "eof" | ruby argf.rb
ARGF.eof? ...
التابع IO.each_codepoint في روبي
يمرر التابع each_codepoint كل عدد من الأعداد الترتيبية (Integer ordinal، وتُعرف أيضًا باسم "نقاط الترميز" [codepoints] في السلاسل النصية المرمزة بالترميز الموحد [Unicode]) لكل محرف من المحارف الموجودة في المجرى الذي استدعي معه إلى الكتلة المعطاة. يجب أن يكون المجرى مفتوحًا في وضعية القراءة، وإلا سيُطلق الاستثناء IOError. في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك. البنية العامة each_codepoint {|c| block } → ios
codepoints {|c| block } → ios
each_codepoint→ an_enumerator
codepoints → an_enumerator
...
التابع IO.eof? في روبي
يتحقق التابع eof? إن وصل المجرى الذي استدعي معه إلى نهاية الملف؛ مما يعني أنَّه لا توجد بيانات أخرى للقراءة. يجب أن يكون المجرى مفتوحًا في وضعية القراءة وإلا سيُطلَق الاستثناء IOError. إن كان المجرى أنبوبًا (pipe) أو مقبسًا (socket)، فسيُحجَز التابع eof? إلى أن يرسل الطرف الآخر بعض البيانات أو يغلقه. لاحظ أن التابع eof? يقرأ البيانات من مخزن الإدخال المؤقت (input byte buffer). قد لا يتصرف التابع sysread كما كنت تنوي مع eof? إلا إذا استدعيت rewind أولًا (لكن ...
التابع IO.eof في روبي
يتحقق التابع eof إن وصل المجرى الذي استدعي معه إلى نهاية الملف؛ مما يعني أنَّه لا توجد بيانات أخرى للقراءة. يجب أن يكون المجرى مفتوحًا في وضعية القراءة وإلا سيُطلَق الاستثناء IOError. إن كان المجرى أنبوبًا (pipe) أو مقبسًا (socket)، فسيُحجَز التابع eof? إلى أن يرسل الطرف الآخر بعض البيانات أو يغلقه. لاحظ أن التابع eof? يقرأ البيانات من مخزن الإدخال المؤقت (input byte buffer). قد لا يتصرف التابع sysread كما كنت تنوي مع eof? إلا إذا استدعيت rewind أولًا (لكن ...
التابع IO.each_line في روبي
ينفذ التابع each_line الكتلة المعطاة على كل سطر في المجرى الذي استدعي معه. يجب أن يكون المجرى مفتوحًا في وضعية القراءة، وإلا سيُطلق الاستثناء IOError. في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك. البنية العامة each_line(sep=$/ [, getline_args]) {|line| block } → ios
each_line(limit [, getline_args]){|line| block } → ios
each_line(sep, limit [, getline_args]) {|line| block } → ios
each_line(...)→ an_enumerator
المعاملات sep محرف يمثِّل الفاصل بين الأسطر. القيمة الافتراضية هي: /$. limit عدد صحيح يمثل الحد ...
التابع IO.each في روبي
ينفذ التابع each الكتلة المعطاة على كل سطر في المجرى الذي استُدعي معه. يجب أن يكون المجرى مفتوحًا في وضعية القراءة، وإلا سيُطلق الاستثناء IOError. في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك. البنية العامة each(sep=$/ [, getline_args]) {|line| block } → ios
each(limit [, getline_args]) {|line| block } → ios
each(sep, limit [, getline_args]){|line| block } → ios
each(...) → an_enumerator
each_line(sep=$/ [, getline_args]) {|line| block } → ios
each_line(limit [, getline_args]){|line| block } → ios
each_line(sep, ...
التابع IO.gets في روبي
يجلب التابع gets السطر التالي من المجرى الذي استدعي معه. يجب أن يكون المجرى مفتوحًا في وضعية القراءة وإلا سيُطلَق الاستثناء IOError. إن كان المجرى يحتوي على حروف متعددة البايتات، فستعيد gets(1) الحرف بالكامل. البنية العامة gets(sep=$/ [, getline_args]) → string or nil
gets(limit [, getline_args])→ string or nil
gets(sep, limit [, getline_args]) → string or nil
المعاملات sep المحرف الفاصل بين الأسطر. القيمة الافتراضية هي: /$. إن كانت قيمته nil، فستُقرَأ آنذاك جميع محتويات المجرى (أي سيمثِّل نهاية المجرى). limit عدد ...
التابع IO.readlines في روبي
يقرأ التابع readlines كل الأسطر الموجودة في المجرى الذي استدعي معه ثم يعيدها في مصفوفة. يجب أن يكون المجرى مفتوحًا في وضعية القراءة أو سيُطلق استثناء IOError. البنية العامة readlines(sep=$/ [, getline_args]) → array
readlines(limit [, getline_args])→ array
readlines(sep, limit [, getline_args]) → array
المعاملات sep محرف يمثِّل الفاصل السطري. القيمة الافتراضية هي: /$. إن كان المعامل sep يساوي nil، فسسيُعاد محتوى المتبقي في المجرى كسجل (record) واحد. وإن إن أعطي المعامل limit أولًا أو إن أعطي مع هذا المعامل أيضًا، فلن ...
التابع IO.advise في روبي
يعلن التابع advise عن نية الوصول إلى بيانات الملف الحالي وفق نمط محدد. في أنظمة التشغيل التي لا تدعم استدعاء النظام posix_fadvise(2)، هذا التابع سيكون عمليةً فارغةً (no-op). المقصود بـ "البيانات" هي الحيز من الملف الحالي الذي يبدأ عند الإزاحة offset (انظر قسم البينة العامة) ويمتد حتى len بايت. إن كان len يساوي 0، فسينتهي الحيّز عند البايت الأخير من الملف. افتراضيًّا، كلا الوسيطين offset و len يساويان 0، أي أن النصيحة تنطبق على الملف بأكمله. في حالة حدوث خطأ، سيُطلَق ...
الصنف Exception في روبي
تُستخدَم الكائنات السليلة من الصنف Exception للتواصل بين التّابع Kernel.raise وتصريحات rescue في الكتل (blocks) من الشكل begin...end. تَحمل كائنات الصنف Exception معلوماتٍ عن الاستثناء المَرمي مثل نوعه (اسم صنف الاستثناء)، وسلسلةً نصيّةً وصفيّةً اختياريّة، ومعلوماتِ تتبّعٍ اختيارية. قد تضيف الأصناف الفرعية من الصنف Exception معلوماتٍ إضافيّةٍ مثل NameError.name. قد تُنشِئ البرامج أصنافًا فرعيّةً (subclasses) من الصنف Exception، تكون عادةً StandardError أو RuntimeError، لتوفير أصنافٍ مخصصّةٍ وإضافة معلوماتٍ إضافية. ألقِ نظرةً على قائمة الأصناف الفرعية في الأسفل من أجل قيم ...
الوحدة urllib.error في بايثون
تعرّف الوحدة urllib.error الأصناف الخاصة بالاستثناءات التي تُطلقها الوحدة urllib.request. الصنف الأساسي في هذه الوحدة هو URLError. تطلق الوحدة urllib.error الاستثناءات التالية: الاستثناء urllib.error.URLError تُطلق أصناف المعالجة هذا الاستثناء (أو الاستثناءات المشتقة منه) عند وقوعها في مشكلة معيّنة. هذا الاستثناء هو صنف متفرّع من الاستثناء OSError. reason سبب حدوث هذا الخطأ. يمكن أن تكون رسالة على هيئة سلسلة نصية أو نسخة من استثناء آخر. ملاحظة: أصبح URLError صنفًا متفرّعًا من الصنف OSError عوضًا عن IOError في الإصدار 3.3 من بايثون. ...
Ruby/Topics
تثبيت روبي توجد طرائق عدَّة لتنزيل وتثبيت روبي على كل منصة وهي: إمَّا استعمال أنظمة مدير الحزم، أو باستعمال المثبِّتات التلقائية، أو باستعمال مدراء روبي. هنالك طريقة أخرى يمكنك بالتأكيد استعمالها لتثبيت روبي وتصريف شيفراتها وهي بنائها من الشيفرة المصدرية مباشرةً. حول روبي يوفر هذا القسم لمحة سريعة عن لغة روبي ونشأتها، وتطورها، ومزاياها التي انفردت بها عن اللغات الأخرى، والتنفيذات المختلفة التي تملكها. البنية العامة بنية اللغة تعد روبي مزيجًا من اللغات البرمجية التالية: Perl، و Smalltalk، و Eiffel، ...
الدالة dir() في بايثون
تستخدم الدالة الداخلية dir() لمعرفة الأسماء التي تعرّفها الوحدة، وتعيد هذه الدالة قائمة مرتّبة من السلاسل النصية: >>> import fibo, sys
>>> dir(fibo)
['__name__', 'fib', 'fib2']
>>> dir(sys)
['__displayhook__', '__doc__', '__excepthook__', '__loader__', '__name__',
'__package__', '__stderr__', '__stdin__', '__stdout__',
'_clear_type_cache', '_current_frames', '_debugmallocstats', '_getframe',
'_home', '_mercurial', '_xoptions', 'abiflags', 'api_version', 'argv',
'base_exec_prefix', 'base_prefix', 'builtin_module_names', 'byteorder',
'call_tracing', 'callstats', 'copyright', 'displayhook',
'dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix',
'executable', 'exit', 'flags', 'float_info', 'float_repr_style',
'getcheckinterval', 'getdefaultencoding', 'getdlopenflags',
'getfilesystemencoding', 'getobjects', 'getprofile', 'getrecursionlimit',
'getrefcount', 'getsizeof', 'getswitchinterval', 'gettotalrefcount',
'gettrace', 'hash_info', 'hexversion', 'implementation', 'int_info',
'intern', 'maxsize', ...
الاستثناءات المضمنة داخليًا في بايثون
يجب أن تكون جميع الاستثناءات في لغة بايثون مُنشأة من صنف مُشتق من الصنف BaseException. عند ذكر صنف مُحدد في جملة except خلال تعبير try، فإن جملة except تُعالج أي استثناء مُشتق من ذلك الصنف المُحدَّد (وليس الاستثناءات المُشتقة من الصنف الذي اُشتقت منه). إذا كان لدينا صنفا استثناءات غير مرتبطين بعلاقة وراثة فهما غير متماثلان حتى لو كانا بنفس الاسم. من الممكن توليد الاستثناءات الداخلية المذكورة بالأسفل بواسطة مُفسر بايثون أو الدوال الداخلية. تملك الاستثناءات "قيمة مرتبطة" تُشير بالتفصيل ...
التحسينات في روبي
إن ميّزة الأصناف المفتوحة في لغة روبي تسمح لك بإعادة تعريف أو إضافة وظائف إلى أصناف معرّفة مسبقًا. وهذا ما يسمى بمصطلح "ترقيع القرد" (monkey patch). المشكلة هنا أنَّ تعديلات من هذا النوع تكون مرئيّة على المستوى العام (global)، وبالتالي جميع مستخدمي الصنف المرقّع قادرون على رؤية هذه التغييرات، ممّا قد يسبّب تأثيرات جانبيّة غير محسوبة أو حتى عطب في البرامج. تأتي التحسينات هنا لتقلّل أثر ترقيع القرد على مستخدمي الصنف الآخرين، إذ تقدّم طريقة لتوسيع الصنف محليًّا. وإليك مثال ...
التوابع في روبي
تتضمّن التوابع في لغة روبي الوظائف التي يقوم بها برنامجك. إليك هذا المثال لتعريف تابع بسيط: def one_plus_one
1 + 1
end
تعريف التابع يتكوّن من الكلمة المحجوزة def يتبعها اسم التابع، ثمّ جسم التابع، فالقيمة المعادة وفي النهاية الكلمة المحجوزة end. فعند تنفيذ التابع في المثال السابق، ستُعاد القيمة 2. هذا القسم سيغطّي تعريف التّوابع. ارجع إلى توثيق استدعاء التوابع لتتعرف على الصيغ المستخدمة لذلك الغرض. تسمية التوابع يمكن أن تستخدم لاسم التابع أحد المعاملات، وإلا فعليك أن تبتدئه بحرف أبجديّ أو ...
الإسناد في روبي
لكي نسند شيئًا في لغة روبي، نستخدم رمز المساواة =؛ ففي المثال التّالي، يُسنَد العدد 5 إلى المتغيّر v المحلّي: v = 5
فالإسناد يُنشئ متغيّرًا محلّيًا جديدًا إذا لم يكن قد عُرِّفَ من قبل. أسماء المتغيرات المحلية اسم المتغيّر المحلّي يجب أن يبدأ بحرف صغير من مجموعة المحارف US-ASCII أو من مجموعة المحارف التي تُمثَّل باستخدام ثمان بتات ثنائيّة. وبشكلٍ عام، فإنّ أسماء المتغيّرات المحلّية متوافقة مع US-ASCII كون الأزرار التي تستخدم لكتابتها موجودة في جميع لوحات المفاتيح. عمومًا، جميع ...
تثبيت روبي على مختلف المنصات
توجد عدة طرق لتنزيل وتثبيت روبي على كل منصة وهي: في لينكس (والأنظمة الشبيه بيونكس)، تستطيع استعمال نظام مدير الحزم لتوزيعتك (الطريقة الأسهل) أو أية أداة من طرف ثالث (مثل rbenv و RVM). على أي حال، إصدار روبي المثبت عن طريق نظام مدير الحزم قد لا يكون هو الإصدار الأحدث، لذا انتبه لهذا الأمر. في macOS، يمكنك استعمال مدير الحزم أو أداة من طرف ثالث (مثل rbenv و RVM). في ويندوز، تستطيع استخدام RubyInstaller. يمكنك باستعمال المثبِّت هذا تثبيت إصدار ...
معلومات إضافية عن روبي
هل تساءلت يومًا لماذا روبي مشهورة إلى هذا الحد؟ يقول المعجبون بها أنَّها لغة جميلة وذات بنية متقنة. ويقولون أيضًا أنَّها لغة عملية وسهلة الاستعمال. فماذا تعطي وبماذا تتمتع؟ مثالية منشئ لغة روبي حققت لغة روبي توازنًا دقيقًا بين لغات البرمجة. عمل منشئ هذا اللغة - الياباني Yukihiro “Matz” Matsumoto - على دمج أجزاءٍ من لغات البرمجة المفضلة لديه (Perl، و Smalltalk، و Eiffel، و Ada، و Lisp) لإنشاء لغة جديدة تحقق التوازن بين البرمجة الوظيفية (functional programming) والبرمجة الأمرية ...
التابع Object.instance_variable_set في روبي
يُعيِّن التابع instance_variable_set قيمة متغيِّر نسخةٍ (instance variable) محدِّدٍ إلى قيمة معيَّنة في الكائن المُعطى؛ هذا يؤدي إلى إحباط جهود منشئ الصنف في محاولة توفير التغليف (encapsulation) المناسب. ليس من الضروري أن يتواجد المتغيِّر قبل استدعاء هذا التابع. إذا مُرِّر اسم متغيِّر النسخة بشكل سلسلةٍ نصيةٍ (string)، فستُحوَّل تلك السلسلة إلى رمز. البنية العامة instance_variable_set(symbol, obj) → obj
instance_variable_set(string, obj) → obj
المعاملات symbol الرمزُ الذي يشير إلى اسم متغيِّر النسخة المراد تعيين قيمة المعامل obj إليه في الكائن المُعطى. string ...
التابع String.sub في روبي
يعيد التابع sub نسخة من السلسلة النصية التي استدعي معها مع تبديل قيمة محدَّدة مع أول تطابق للنمط المعطى. البنية العامة sub(pattern, replacement) → new_str
sub(pattern, hash) → new_str
sub(pattern) {|match| block } → new_str
إن أعطيت كتلة block إلى التابع، فستُمرَّر السلسلة الحالية المتطابقة إليها وستعيَّن قيم متغيرات مثل $1، و $2، و $`، و $&، و $' بشكل مناسب. ستحل القيم التي تعيدها الكتلة مكان القيمة المتطابقة في كل استدعاء. المعاملات pattern يكون عادةً تعبيرًا نمطيًّا. إن كان سلسلة نصية، فستُفسَّر أية محارف ...
التابع Numeric.arg في روبي
يعيد التابع arg القيمة 0 إن كان العدد الذي استُدعي معه موجبًا، أو القيمة pi خلاف ذلك. البنية العامة arg → 0 or float
القيمة المُعادة تعاد القيمة 0 إن كانت القيمة المعطاة موجبة، أو pi خلاف ذلك. انظر أيضا التابع angle: يعيد القيمة 0 إن كان العدد الذي استُدعي معه موجبًا، أو القيمة pi خلاف ذلك. التابع ceil: يعيد أصغر عدد أكبر من أو يساوي العدد المعطى وبدقة محدَّدة. مصادر قسم التابع arg في الصنف Numeric في توثيق روبي الرسمي.
التابع Thread.keys في روبي
يُعيد التابع keys مصفوفة من أسماء المتغيرات محلية الليف (fiber-local variables) على هيئة رموز. البنية العامة keys→ array
القيمة المعادة تعاد مصفوفة من أسماء المتغيرات محلية الليف. أمثلة مثال على استخدام التابع keys: thr = Thread.new do
Thread.current[:cat] = 'meow'
Thread.current["dog"] = 'woof'
end
thr.join #=> #<Thread:0x401b3f10 dead>
thr.keys #=> [:dog, :cat]
انظر أيضًا التابع key?: يتحقق إن كانت السلسلة النصية أو الرمز المعطى موجود على هيئة متغير محلي الليف (fiber-local variable). مصادر قسم التابع keys في الصنف Thread ...
التابع Array.sort! في روبي
يرتب التابع sort! عناصر المصفوفة التي استُدعيت معه. ستجرى عملية الموازنة بين عناصر المصفوفة المراد ترتيبها باستعمال المعامل <=> أو باستعمال كتلة برمجية محددة. إن استعملت الكتلة البرمجية block في ترتيب العناصر، فيجب أن تجري موازنة بين العنصر a والعنصر b وتعيد عددًا سالبًا إن كان b أكبر من a، أو العدد 0 إن كانا متساويين، أو عددًا موجبًا إن كان b أصغر من a. مع ذلك، لن تكون النتيجة مضمونة مئة بالمئة، إذ لا يمكن التنبؤ بترتيب العناصر المتساوية ...
التابع =Process.uid في روبي
يضبط التابع uid عند استدعائه بالشكل uid= user المُعرِّف الحقيقي للمستخدم المالك للعملية الحالية إلى القيمة user. هذا التابع غير متاح على جميع المنصات. البنية العامة uid= user → numeric
القيم المعادة تعاد القيمة user بعد تعيينها إلى المُعرِّف الحقيقي للمستخدم المالك للعملية الحالية. أمثلة مثال على استعمال التابع uid: Process.setproctitle('myapp: worker #%d' % worker_id)
انظر أيضًا التابع uid: يعيد المُعرِّف الحقيقي للمستخدم المالك للعملية الحالية. التابع gid=: يضبط عند استدعائه بالشكل gid= integer مُعرِّف المجموعة المالكة للعملية الحالية إلى القيمة ...
التابع ARGF.inspect() في روبي
يعد التابع inspect() اسمًا بديلًا للتابع to_s. انظر أيضًا التابع to_s: يعيد القيمة "ARGF". مصادر قسم التابع ARGF.inspect() في الصنف ARGF في توثيق روبي الرسمي.
الصنف Data في روبي
الصنف Data هو صنف مهمل. كان يعدُّ الصنف الأساس لملحقات C التي تستعمل Data_Make_Struct أو Data_Wrap_Struct. مصادر صفحة الصنف Data في توثيق روبي الرسمي.
التابع InstructionSequence.of في روبي
يُعيد التابع of سلسلة التعليمات التي تحوي الكائن Proc أو Method المعطى. البنية العامة of(p1)
أمثلة مثال على استعمال التابع of باستخدام irb: # a proc
> p = proc { num = 1 + 2 }
> RubyVM::InstructionSequence.of(p)
> #=> <RubyVM::InstructionSequence:block in irb_binding@(irb)>
# for a method
> def foo(bar); puts bar; end
> RubyVM::InstructionSequence.of(method(:foo))
> #=> <RubyVM::InstructionSequence:foo@(irb)>
أو باستخدام compile_file: # /tmp/iseq_of.rb
def hello
puts "hello, world"
end
$a_global_proc = proc { str = 'a' + 'b' }
# in irb
> require '/tmp/iseq_of.rb'
# first the method hello
> RubyVM::InstructionSequence.of(method(:hello))
> #=> ...
التابع Float.prev_float في روبي
يعيد التابع prev_float العدد العشري الذي يسبق العدد العشري الذي استُدعي معه. يعيد استدعاء التابع prev_float مع القيمة ((-Float::MAX والقيمة (Float::INFINITY-) القيمة الثابتة -Float::INFINITY. ويعيد استدعاء التابع بالشكل Float::NAN.prev_float القيمة Float::NAN. البنية العامة prev_float → float
القيمة المعادة يعاد العدد العشري السابق للعدد العشري المعطى. أمثلة مثال على استخدام التابع prev_float: 0.01.prev_float #=> 0.009999999999999998
1.0.prev_float #=> 0.9999999999999999
100.0.prev_float #=> 99.99999999999999
0.01 - 0.01.prev_float #=> 1.734723475976807e-18
1.0 - 1.0.prev_float ...
التابع GC.disable في روبي
يعطِّل التابع disable جمع البيانات المهملة، ويعيد القيمة true إذا كان جمع البيانات المهملة مُعطَّلًا مسبقًا. البنية العامة disable → true or false
القيمة المعادة تعاد القيمة true إذا كان جمع البيانات المهملة مُعطَّلًا مسبقًا. خلا ذلك، تعاد القيمة false. أمثلة مثال على استعمال التابع disable: GC.disable #=> false
GC.disable #=> true
انظر أيضا التابع enable: يفعِّل جمع البيانات المهملة، ويعيد القيمة true إذا كان جمع البيانات المهملة مُعطَّلًا مسبقًا. مصادر قسم التابع disable في الصنف GC في توثيق ...
التابع Dir.delete في روبي
يحذف التابع delete مجلدًا محدَّدًا. سيُطلق خطأ من صنف فرعي من SystemCallError في حال لم يكن المجلد المراد حذفه موجودًا. البنية العامة delete( string ) → 0
المعاملات string اسم المجلد المُراد حذفه. انظر أيضًا التابع chdir : يغيِّر مجلد العمل (working directory) الحالي للعملية إلى مجلد محدَّد. التابع rmdir :يحذف مجلدًا محدَّدًا. مصادر قسم التابع delete في الصنف Dir في توثيق روبي الرسمي.
الصنف FrozenError في روبي
يرمى الاستثناء FrozenError عند محاولة تعديل كائن مجمد. [1, 2, 3].freeze << 4
عند تنفيذ هذه الشيفرة، يرمى الاستثناء: FrozenError: can't modify frozen Array
انظر أيضًا التابع freeze: يجمد السلسلة النصية التي استُدعيت معه، أي يجعلها غير قابلة للتعديل. مصادر صفحة الصنف FrozenError في توثيق روبي الرسمي.
التابع ARGF.printf في روبي
يطبع التابع printf الكائن أو الكائنات الممرَّرة إليه على المجرى ios (اختصارًا للعبارة Input Output Stream) بعد تنسيقها بشكل معين. للمزيد من المعلومات حول المعاملات المستعملة في عملية التنسيق (أي المستعملة مع الوسيط format_string)، ارجع إلى صفحة التابع Kernel.sprintf. البنية العامة printf(format_string [, obj, ...]) → nil
القيم المعادة تعاد القيمة nil. أمثلة مثالٌ على استخدام التابع printf: printf("%s, the sale price is $%f.\n", name, sale_price)
...
التابع Thread.thread_variable? في روبي
يتحقق التابع thread_variable? إن كانت السلسلة النصية أو الرمز المعطى موجودًا كمتغير محلي للمهمة الفرعية (thread-local variable). لاحظ أنَّ هذه المتغيرات ليست متغيرات محلية الألياف (fiber local variables). يرجى الاطلاع على صفحة المعامل [] والتابع thread_variable_get لمزيد من التفاصيل. البنية العامة thread_variable?(key)→ true or false
المعاملات key سلسلة نصية أو رمز. القيمة المعادة تعاد القيمة true إن كانت السلسلة النصية أو الرمز key المعطى موجودًا كمتغير محلي للمهمة الفرعية (thread-local variable)، وإلا فستعاد القيمة false. أمثلة مثال على استخدام التابع thread_variable?: ...
الصنف ConditionVariable في روبي
توسع كائنات الصنف ConditionVariable عمل الصنف Mutex. فمن الممكن باستخدام المتغيرات الشرطية إيقاف مهمة حرجة (critical section) في أثناء تنفيذها إلى حين إتاحة مورد ما. إليك المثال التالي: mutex = Mutex.new
resource = ConditionVariable.new
a = Thread.new {
mutex.synchronize {
# Thread 'a' now needs the resource
resource.wait(mutex)
# 'a' can now have the resource
}
}
b = Thread.new {
mutex.synchronize {
...
الصنف TracePoint في روبي
يوفر الصنف TracePoint وظائف Kernel.set_trace_func على شكل واجهة برمجية كائنية (Object-Oriented API). مثال يمكننا استخدام المتعقبات (كائنات الصنف TracePoint) لجمع المعلومات بخصوص الاستثناءات: trace = TracePoint.new(:raise) do |tp|
p [tp.lineno, tp.event, tp.raised_exception]
end
#=> #<TracePoint:disabled>
trace.enable
#=> false
0 / 0
#=> [5, :raise, #<ZeroDivisionError: divided by 0>]
الأحداث إذا لم تحدِّد نوع الأحداث التي تريد الاستماع إليها، فسيشمل المتعقب TracePoint جميع الأحداث المتاحة. ملحوظة: لا تعتمد على مجموعة الأحداث الحالية، إذ أن هذه القائمة عرضةٌ للتغيير. بدلًا من ذلك، يُنصَح بتحديد نوع ...
التابع Numeric.truncate في روبي
يعيد التابع truncate العدد الذي استُدعي معه بعد اقتطاع المنازل العشرية منه بمقدار محدَّد. ينفذ الصنف Numeric هذا عن طريق تحويل قيمة العدد إلى النوع Float ثم يستدعي Float.truncate. البنية العامة truncate([ndigits]) → integer or float
المعاملات ndigits عدد يمثل دقة التقريب. القيمة الافتراضية هي: 0. القيمة المعادة يعاد عدد صحيح أو عشري يمثِّل العدد المعطى بعد اقتطاع المنازل العشرية منه بدقة ndigits. انظر أيضا التابع ceil: يعيد أصغر عدد من الأعداد الأكبر من أو تساوي العدد الذي استُدعي معه ...
معالجة الاستثناءات في روبي
يتمّ التعامل مع الاستثناءات بعد الكلمة rescue في الكتلة begin/end: begin
# الشيفرة التي قد تسبب ظهور استثناء برمجي
rescue
# معالجة الاستثناء
end
إذا كنت ضمن تابع، فلست بحاجة لاستخدام begin و end إلا إذا كنت ترغب بحدّ النّطاق الخاص بالاستثناء الذي ترغب بمعالجته: def my_method
# ...
rescue
# ...
end
نفس الأمر يطبّق في الأصناف (classes) والوحدات (modules). يمكنك إسناد استثناء إلى متغيّر محليّ باستخدام الرمز => متبوعًا باسم المتغيّر، وذلك في نهاية السطر الخاص بالكلمة rescue: begin
# ...
rescue => exception
warn exception.message
raise # كرر ظهور ...
التابع ARGF.chars() في روبي
التابع ()chars هو اسم بديل مهمل (deprecated) للتابع each_char. انظر أيضًا التابع each_char: يعيد قيمة قابلة للعد (enumerator) تتكرر (Iterate) على كل قيمة من النوع char في الملفات الموجودة في ARGV. مصادر قسم التابع chars() في الصنف ARGF في توثيق روبي الرسمي.
التابع SizedQueue.new في روبي
ينشئ التابع new طابورًا ذا طول ثابت، مع حد أقصى لحجمه. البنية العامة new(max)
المعاملات max عدد يمثل الحد الأقصى لحجم الطابور المراد إنشاؤه. القيمة المعادة يعاد طابورٌ ذو طول ثابت يساوي إلى max. انظر أيضا المعامل <<: يضيف كائنات إلى الطابور المعطى. التابع close: يغلق الطابور الذي استدعي معه. مصادر قسم التابع new في الصنف SizedQueue في توثيق روبي الرسمي.