列表上的Scala错误';s解压方法

列表上的Scala错误';s解压方法,scala,Scala,我有一个元组列表。元组的每个元素都是MyClass类型: case class MyClass(metrics: List[MyOtherClass], tags: Set[String]) 我想调用unzip方法来获取列表的元组。我收到以下错误消息: 我知道方法定义是:def unzip[A1,A2](隐式asPair:(A)⇒ (A1,A2)):(列表[A1],列表[A2]) 但是,当我调用列表[(Int,Int)]上的解压方法时,编译器不会要求我包含asPair参数 我在这里遗漏了什么?

我有一个元组列表。元组的每个元素都是MyClass类型:

case class MyClass(metrics: List[MyOtherClass], tags: Set[String])
我想调用unzip方法来获取列表的元组。我收到以下错误消息:

我知道方法定义是:
def unzip[A1,A2](隐式asPair:(A)⇒ (A1,A2)):(列表[A1],列表[A2])

但是,当我调用列表[(Int,Int)]上的解压方法时,编译器不会要求我包含asPair参数


我在这里遗漏了什么?

我缺少足够的代表发表评论,但是如果您可以发布一个示例,其中包含一些不起作用的代码,那将非常有用

我已经准备了一个简单的例子,解压的效果和预期的一样

object Test {
  case class MyClass(metrics: List[MyOtherClass], tags: Set[String])
  case class MyOtherClass(thing: Int)

  def main(args: Array[String]): Unit = {
    val a = List.fill(2)(
      (
        MyClass(List(MyOtherClass(1)), Set("foo")),
        MyClass(List(MyOtherClass(2)), Set("bar"))
      )
    )
    println(a.unzip)
  }
}
哪个输出

(List(MyClass(List(MyOtherClass(1)),Set(foo)), MyClass(List(MyOtherClass(1)),Set(foo))),List(MyClass(List(MyOtherClass(2)),Set(bar)), MyClass(List(MyOtherClass(2)),Set(bar))))
编译器不要求我包含asPair参数

这是因为它是隐式的。请仔细阅读Scala中的隐式参数

我有一个元组列表。元组的每个元素都是MyClass类型


错误消息告诉您实际拥有的是
列表[可序列化的产品]
。最常见的原因是它是一个不相关案例类/对象的列表;根据引用的句子,它可能是具有不同数量元素的元组,但您也可能意外地在其中包含一个
Some
解压
仅适用于成对列表,而不适用于任意元组。

是否确定列表中的所有元素都是包含2个元素的元组?能否提供一个不适用于
解压
的示例列表?