Scalaのパラメータに複数のタイプを受け入れます
-
09-12-2019 - |
質問
Method Update()では、2つのオブジェクト、Objecta、Objectbがあります。ObjectAまたはObjectBを受け入れる機能を作成したい(ただし、他の種類はありません)。概念的には、これが私がしようとしていることです。
def doSomething[T <: ObjectA | T <: ObjectB](obj: T) = {
obj.update
}
.
私はこの問題を解決するための他の方法がある(例えば、更新()メソッドの構造タイピング、一般的な基本クラスなどの構造的タイピング)が、私の質問はScalaでこのようにすることが可能であり、そうであるならば構文?そしてこれは何ですか?
解決
Scalaでは、派生元の共用体を作成するための型があります。 基本的に、あなたは次のようなことをするでしょう:
def doSomething(obj: Either[ObjectA, ObjectB]) {
obj.fold(fa, fb)
}
.
チェックアウト>>> http://www.scala-lang.org/api./current/scala/eiber.html
所属していません StackOverflow