2010-11-11から1日間の記事一覧

破壊的メソッドを作る

配列の各要素を n 足す破壊的メソッドを作りたいとする。 self = self.map{ |e| e+n } じゃなくて replace メソッドを使う。 class Array def plus!(n) self.replace( self.map{ |e| e+n } ) end end arr = [1,2,3,4] arr.plus!(2) p arr # => [3,4,5,6]

メソッド内の Proc オブジェクト

メソッド内で Proc.new したときに、ブロックの指定が無ければ、メソッドに伴うブロックを Proc オブジェクトとして生成する。 def kuma pr = Proc.new pr.call( 10 ) end p kuma{ |n| n+1 } # => 11