假设我有一个功能,例如:
def foo[T<:U <:V](t:T): Unit
我想知道是否有一种方法可以将这两者组合成一个类型W
,以便我可以拥有:
def foo[T<: W](t: T): Unit
用例是:
trait FooTrait{
type W
def foo[T<: W](t: T): Unit
}
我可能有两种不同的 foo 实现,其中一种具有简单的W1
类型绑定,而另一种是T<:W1 <:W2
我想要更复杂的一种来定义 aW3
以便我可以拥有:
def foo[T<: W3](t: T): Unit
同样,我希望能够使用类型类来完成这些。所以如果我有:
def bar[T<:U :V](t:T): Unit
我希望有
def bar[T:X](t:T): Unit
这个用例与前面的案例基本相同。
这可能吗?