プログラマ 福重 伸太朗 〜基本へ帰ろう〜 このページをアンテナに追加 RSSフィード

2007-06-13

Duck Typing

http://0xcc.net/blog/archives/000053.html


class Duck
  def quack
    puts "hogehoge"
  end
end

class Foo
  def quack
    puts "foofoo"
  end
end

def func(ducky)
  ducky.quack
end

duck = Duck.new
foo = Foo.new

func(duck)  #=> hogehoge
func(foo)    #=> foofoo


「Foo もquack と鳴くのでDuck みたいなもんだろう」っていうのがDuck Typing(たぶん)