因此,如果可能的话,我希望确保大小写匹配中的提取器将为其提供一个正确的泛型类型的别名。
trait MyT[A]
case class MyC[A](t: MyT[A])
def foo: MyC[_]
def go[A](t: MyT[A]): Option[MyC[A]] = foo match {
case m@MyC(`t`) => Some(m.copy(t = t))
case _ => None
}
这是可行的,但我不喜欢做m.copy(t = t)
。基本上,m@
将绑定到MyC[Any]
,但我希望它绑定到MyC[A]
。这是可能的吗,也许可以使用自定义的unapply
https://stackoverflow.com/questions/51314898
复制相似问题