الفرق بين المراجعتين لصفحة: «Ruby/IO/print»

من موسوعة حسوب
< Ruby‏ | IO
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>IO.print‎</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Ruby IO...'
 
ط تدقيق
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby IO]]
[[تصنيف: Ruby IO]]
يكتب التابع <code>print</code> الكائن(ات) المعطاة في [[Ruby/IO|مجرى د/خ]] <code>ios</code>. ثم يُعيد <code>nil</code>.
يكتب التابع <code>print</code> الكائن (أو الكائنات) المُمرَّرة إليه في [[Ruby/IO|المجرى]] الذي استدعي معه ثم يُعيد القيمة <code>nil</code>. يجب أن يكون المجرى مفتوحًا في وضعية الكتابة.  


يجب أن يكون المجرى مفتوحًا في وضعية الكتابة. سيتم تحويل كائن غير نصي إلى [[Ruby/String|سلسلة نصية]] عبر استدعاء تابعه <code>to_s</code>. في حال استدعائه بدون وسائط، فسيطبع محتويات <code>$_</code>.
سيتم تحويل الكائنات غير النصية إلى [[Ruby/String|سلسلة نصية]] عبر استدعاء التابع <code>to_s</code> الخاص بها.  


إن كان فاصل حقل الإخراج (<code>$,</code>) مخالفا للقيمة <code>nil</code>، فسيُدرج بين الكائنات. وإن كان فاصل سجل الإخراج (<code>$\</code>) مخالفا للقيمة <code>nil</code>، فسيتم إلحاقه بالمخرجات.
في حال استدعاء التابع <code>print</code> بدون تمرير أي شيء إليه، فسيطبع محتويات المتغير ‎<code>$_‎</code>.


 
إن كان فاصل حقل الإخراج (‎<code>$,‎</code>) مخالفا للقيمة <code>nil</code>، فسيُدرَج بين الكائنات. وإن كان فاصل سجل الإخراج (‎<code>$\‎</code>) مخالفًا للقيمة <code>nil</code>، فسيتم إلحاقه بنهاية المخرجات.
 
<code>produces:</code>
 
<syntaxhighlight lang="ruby">This is 100 percent.‎</syntaxhighlight>
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">print→ nil
<syntaxhighlight lang="ruby">print→ nil
سطر 19: سطر 15:
==المعاملات==
==المعاملات==
===<code>obj‎</code>===
===<code>obj‎</code>===
===<code>...</code>===
كائن يراد كتابته على المجرى المعطى.
==القيمة المُعادة==
 
=== <code>...</code> ===
الكائنات الأخرى المراد كتابتها على المجرى المعطى.
 
==القيمة المعادة==
تعاد القيمة <code>nil</code> بعد كتابة الكائنات <code>obj</code> و <code>...</code> على المجرى المعطى.
 
==أمثلة==
==أمثلة==
مثال على استخدام التابع <code>print‎</code>:
مثال على استخدام التابع <code>print‎</code>:
<syntaxhighlight lang="ruby">$stdout.print("This is ", 100, " percent.\n")‎</syntaxhighlight>
<syntaxhighlight lang="ruby">$stdout.print("This is ", 100, " percent.\n")‎</syntaxhighlight>الناتج:<syntaxhighlight lang="text">This is 100 percent.‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضًا==
* التابع <code>[[Ruby/IO/pread|pread]]</code>: يقرأ  <code>maxlen</code> (انظر فقرة البنية العامة) بايت من [[Ruby/IO|مجرى د/خ]] <code>ios</code> باستخدام استدعاء النظام pread، ثم يُعيدها ك[[Ruby/String|سلسلة نصية]] من غير تعديل إزاحة (offset) الواصف الأساسي. هذا مفيد مقارنة بالجمع بين <code>[[Ruby/IO/seek|#seek]]</code> و <code>[[Ruby/IO/read|#read]]</code> في كونه ذريًا (atomic)، مما يسمح لعدة [[Ruby/Thread|مهام فرعية]]/عمليات بالتشارك في نفس [[Ruby/IO|مجرى د/خ]] <code>[[Ruby/IO|IO]]</code> لقراءة الملف في مواضع مختلفة. هذا سيتجاوز أي مساحة تخزين مؤقت للمستخدمين من طبقة [[Ruby/IO|مجرى د/خ]] <code>[[Ruby/IO|IO]]</code>. في حال إعطاء الوسيط الاختياري <code>outbuf</code> (انظر فقرة البنية العامة)، فينبغي أن يشير إلى [[Ruby/String|سلسلة نصية]] <code>[[Ruby/String|String]]</code>، والتي ستتلقى البيانات. سيُطلق استثناء <code>SystemCallError</code> عند الخطأ، أو <code>EOFError</code> عند نهاية الملف، أو <code>NotImplementedError</code> إن لم يكن نظام التشغيل يدعم استدعاء النظام.
* التابع [[Ruby/IO/pread|<code>pread</code>]]: يقرأ من المجرى الذي استدعي معه عددًا محدَّدًا من البايتات باستخدام استدعاء النظام <code>pread</code>، ثم يُعيدها ك[[Ruby/String|سلسلة نصية]] من غير تعديل إزاحة (offset) الواصف الأساسي.
* التابع <code>[[Ruby/IO/printf|printf]]</code>: ينسق ويكتب في [[Ruby/IO|مجرى د/خ]] <code>ios</code>، حيث يحول الوسائط المعطاة وفق سلسلة التنسيق الممررة format_string (انظر فقرة البنية العامة). انظر صفحة <code>Kernel#sprintf</code> لمزيد من التفاصيل.
 
* التابع <code>[[Ruby/IO/printf|printf]]</code>: ينسق الكائنات المُمرَّرة إليه ثم يكتبها في [[Ruby/IO|المجرى]] الذي استدعي معه. 
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-print قسم التابع print‎ في الصنف IO‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-print قسم التابع print‎ في الصنف IO‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 15:17، 22 ديسمبر 2018

يكتب التابع print الكائن (أو الكائنات) المُمرَّرة إليه في المجرى الذي استدعي معه ثم يُعيد القيمة nil. يجب أن يكون المجرى مفتوحًا في وضعية الكتابة.

سيتم تحويل الكائنات غير النصية إلى سلسلة نصية عبر استدعاء التابع to_s الخاص بها.

في حال استدعاء التابع print بدون تمرير أي شيء إليه، فسيطبع محتويات المتغير ‎$_‎.

إن كان فاصل حقل الإخراج (‎$,‎) مخالفا للقيمة nil، فسيُدرَج بين الكائنات. وإن كان فاصل سجل الإخراج (‎$\‎) مخالفًا للقيمة nil، فسيتم إلحاقه بنهاية المخرجات.

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

print nil
print(obj, ...)   nil

المعاملات

obj‎

كائن يراد كتابته على المجرى المعطى.

...

الكائنات الأخرى المراد كتابتها على المجرى المعطى.

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

تعاد القيمة nil بعد كتابة الكائنات obj و ... على المجرى المعطى.

أمثلة

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

$stdout.print("This is ", 100, " percent.\n")

الناتج:

This is 100 percent.‎

انظر أيضًا

  • التابع pread: يقرأ من المجرى الذي استدعي معه عددًا محدَّدًا من البايتات باستخدام استدعاء النظام pread، ثم يُعيدها كسلسلة نصية من غير تعديل إزاحة (offset) الواصف الأساسي.
  • التابع printf: ينسق الكائنات المُمرَّرة إليه ثم يكتبها في المجرى الذي استدعي معه. 

مصادر