動的型付け
Rubyは動的に型付けを行うので、こんな書き方ができる。
#関数 fooの定義。barの型は気にしない def foo(bar) print bar print "\n" end foo(1) foo([1,2,3]) foo({'baz'=>'Baz', 'quux'=>'Quux'})
実行結果
1 123 quuxQuuxbazBaz
print自体がポリモーフィックなのであんまり意味ないか。
でも、Hashはいまいち期待と違う出力。
以下のようにすれば引数の型によって処理を分けることもできる。
def foo(bar) if bar.is_a?Hash print bar['baz'].to_s + " " + bar['quux'].to_s end end
上の関数に追加すれば、Hash部分の実行結果は
Baz Quux
上記をJavaで書くと、、、面倒くさいので省略。