2004-01-26 02:40:19 +0900 (1678d); rev 1
Rubyのブロックを委譲するときは &block で受けて &block で渡すとよい。
例
def m(&block) iter(&block) end def iter yield 1; yield 1; yield 1 yield 1; yield 1; yield 1 yield 1; yield 1; yield 1 end
| direct | 間接層なし |
|---|---|
| &block | &block で受けて &block で渡す |
| yield | 全部 yield を使う |
GCあり
% ruby-1.6.8 t direct : 0.620000 sec &block : 0.920000 sec yield : 1.270000 sec % ruby-1.8.1 t direct : 0.590000 sec &block : 0.890000 sec yield : 1.300000 sec % ruby -v t ruby 1.9.0 (2004-01-22) [i686-linux] direct : 0.550000 sec &block : 0.860000 sec yield : 1.200000 sec
GCなし
% ruby-1.6.8 t direct : 0.580000 sec &block : 0.760000 sec yield : 1.070000 sec % ruby-1.8.1 t direct : 0.550000 sec &block : 0.790000 sec yield : 1.090000 sec % ruby -v t ruby 1.9.0 (2004-01-22) [i686-linux] direct : 0.530000 sec &block : 0.720000 sec yield : 1.020000 sec
Related Pages: RubyPages RubyMiniPattern
system revision 1.162