kind_of?を見て、Rubyでオーバーロードならこの方がそれっぽく見えるかと思いました。
class Integer def exclaim v = 1 self.downto(1) { |n| v *= n } v end end class String def exclaim self+"!" end end i = 10 s = "10" class Sample def Sample::exclaim(o) o.exclaim end end [i, s].each { |o| p Sample::exclaim(o) } # => 3628800 # => "10!"
king_of?関係ないし。StringとかIntegerに直接定義すなってかんじですが。なにより釈迦に説法ですね。失礼しました。
「へー、こんなふうに勉強されるんだなー」ととても興味深く読んでいます。今後も楽しみにしています。