From db68e1714eb75424fd79feccc6f0ef63898321f5 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 16 Jan 2004 14:07:06 +0000 Subject: * enum.c (enum_find): mention about ifnone argument. [ruby-talk:90003] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- enum.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'enum.c') diff --git a/enum.c b/enum.c index ef7fe951c3..0b88176fb6 100644 --- a/enum.c +++ b/enum.c @@ -92,12 +92,13 @@ find_i(i, memo) /* * call-seq: - * enum.detect {| obj | block } => obj or nil - * enum.find {| obj | block } => obj or nil + * enum.detect(ifnone = nil) {| obj | block } => obj or nil + * enum.find(ifnone = nil) {| obj | block } => obj or nil * * Passes each entry in enum to block. Returns the - * first for which block is not false. Returns - * nil if no object matches. + * first for which block is not false. If no + * object matches, calls ifnone and returns its result when it + * is specified, or returns nil * * (1..10).detect {|i| i % 5 == 0 and i % 7 == 0 } #=> nil * (1..100).detect {|i| i % 5 == 0 and i % 7 == 0 } #=> 35 @@ -198,7 +199,7 @@ collect_i(i, ary) VALUE i, ary; { rb_ary_push(ary, rb_yield(i)); - + return Qnil; } @@ -207,7 +208,7 @@ collect_all(i, ary) VALUE i, ary; { rb_ary_push(ary, i); - + return Qnil; } @@ -229,7 +230,7 @@ enum_collect(obj) VALUE obj; { VALUE ary = rb_ary_new(); - + rb_iterate(rb_each, obj, rb_block_given_p() ? collect_i : collect_all, ary); return ary; @@ -250,7 +251,7 @@ enum_to_a(obj) VALUE obj; { VALUE ary = rb_ary_new(); - + rb_iterate(rb_each, obj, collect_all, ary); return ary; -- cgit v1.2.3