こんにちは。ひわだです。
既存のクラスにメソッドを追加するうまい方法はないでしょうか?。
Arrayクラスに fold メソッドを追加しようとしたところ、
module Foldable
def fold(st=0)
self.each{|i| st = yield(st, i)}
st
end
end
Array.public_class_method(:include)
Array.include(Foldable)
Array.private_class_method(:include)
rbc0> [1,2,3,4,5,6,7,8,9,10].fold {|st,i| st+i}
55
なんか、結局こんなになってしまいました ^^;。
これはこれでいいんですが、メソッド一つにこれだけ書くのも何だか ^^;。
なんかぼけた質問のような気がしてならないんですが、
普通どうするものなのか教えてください (_ _)。
--
京都大学大学院情報学研究科 M1 檜田 和浩 ( hiwada / kuee.kyoto-u.ac.jp )