元组推断失败

时间:2017-08-26 01:18:13

标签: scala generics tuples

嗨所以我有一个带有泛型+ T和+ U的特性。

utf8mb4_unicode_ci

第一个工作正常。 然而最后两个都吐了出来:

def test[I >: T, V >: U](e: Traversable[I], f: V)
def test[I >: T, V >: U](e: (Traversable[I], V))
def test[I >: T, V >: U](e: Tuple2[Traversable[I], V])

为什么scala不能推断出第二和第三个例子中的类型?我错过了什么?

由于

2 个答案:

答案 0 :(得分:1)

这对我来说看起来像编译错误。在第一种情况下,我没有看到它可以将String转换为Traversable的原因,而不是其他两种情况。

答案 1 :(得分:0)

此代码在Scala 2.12.3中编译时没有错误:

trait MyTrait[+T, +U] {
  def test[I >: T, V >: U](e: Traversable[I], f: V)
  def test1[I >: T, V >: U](e: (Traversable[I], V))
  def test2[I >: T, V >: U](e: Tuple2[Traversable[I], V])
}