うまく限定出来ないケースが見つかったためそれに対応するための 続<:<を使ってメソッド引数の型を限定する を書きました(2014.12.22)。 はじめに 型はなんでもいいのですが、例えばInt型,Boolean型,String型のいずれかを受け付けるfoo関数を定義したいとする。 案1 親クラス(trait)で型を宣言する 今回の場合、IntとBooleanとStringのみに共通する親クラスやtraitは存在しないのでこの作戦は使えない。 案2 オーバーロード YES、出来る。 けどScalaさんならもっと違う書き方あるんでしょう?と勘ぐるくらいにはScalaに慣れてきた。 def foo(arg: Int) = println(arg) def foo(arg: String) = println(arg) def foo(arg: Boolean) = println(arg)