APIdock / Ruby
/
method

each

ruby latest stable - Class: IO
each(*args)
public

Executes the block for every line in ios, where lines are separated by sep. ios must be opened for reading or an IOError will be raised.

If no block is given, an enumerator is returned instead.

f = File .new ("testfile")
f.each  {|line| puts  "#{f.lineno}: #{line}" }

produces:

1: This is line one
2: This is line two
3: This is line three
4: And so on...

See IO.readlines for details about getline_args.

static VALUE
rb_io_each_line(int argc, VALUE *argv, VALUE io)
{
 VALUE str;
 struct getline_arg args;
 RETURN_ENUMERATOR(io, argc, argv);
 prepare_getline_args(argc, argv, &args, io);
 if (args.limit == 0)
 rb_raise(rb_eArgError, "invalid limit: 0 for each_line");
 while (!NIL_P(str = rb_io_getline_1(args.rs, args.limit, args.chomp, io))) {
 rb_yield(str);
 }
 return io;
}

AltStyle によって変換されたページ (->オリジナル) /