public Method

IO.print(...)

ios.print()              nil
ios.print(obj, ...)      nil

Writes the given object(s) to ios. The stream must be opened for writing. If the output record separator ($\) is not nil, it will be appended to the output. If no arguments are given, prints $_. Objects that aren’t strings will be converted by calling their to_s method. With no argument, prints the contents of the variable $_. Returns nil.

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

produces:

This is 100 percent.

Source Code

/*
*  call-seq:
*     ios.print()             => nil
*     ios.print(obj, ...)     => nil
*  
*  Writes the given object(s) to <em>ios</em>. The stream must be
*  opened for writing. If the output record separator (<code>$\\</code>)
*  is not <code>nil</code>, it will be appended to the output. If no
*  arguments are given, prints <code>$_</code>. Objects that aren't
*  strings will be converted by calling their <code>to_s</code> method.
*  With no argument, prints the contents of the variable <code>$_</code>.
*  Returns <code>nil</code>.
*     
*     $stdout.print("This is ", 100, " percent.\n")
*     
*  <em>produces:</em>
*     
*     This is 100 percent.
*/

VALUE
rb_io_print(argc, argv, out)
   int argc;
   VALUE *argv;
   VALUE out;
{
   int i;
   VALUE line;

   /* if no argument given, print `$_' */
   if (argc == 0) {
       argc = 1;
       line = rb_lastline_get();
       argv = &line;
   }
   for (i=0; i<argc; i++) {
       if (!NIL_P(rb_output_fs) && i>0) {
           rb_io_write(out, rb_output_fs);
       }
       switch (TYPE(argv[i])) {
         case T_NIL:
           rb_io_write(out, rb_str_new2("nil"));
           break;
         default:
           rb_io_write(out, argv[i]);
           break;
       }
   }
   if (!NIL_P(rb_output_rs)) {
       rb_io_write(out, rb_output_rs);
   }

   return Qnil;
}
Comments

Have your say
Please use Textile formatting (click here for a cheat sheet). Use <code/> and <pre/> for code samples.
Click here to login with OpenID to to post comments.