当我得知案例类扩展Product后,我想知道他们为什么不扩展ProductN。例如,给予相同的代码:为什么案例类仅扩展Product而不扩展Product1,Product2,...,ProductN?
case class Foo(a: Int)
我期望Foo(1).asInstanceOf[Product1[Int]]
工作,但它不会(与斯卡拉2.9.1检查,并通过其他渠道和Product
文件确认)。
我感兴趣的是这个,因为我想声明的类,如:
abstract class UnaryOp[T1 <: Exp[_], R](t1: T1) extends Exp[R] {
this: Product1[T1] =>
}
这种方式,对于一个一元操作,必须实现产品1的节点。如果仅仅是一个具有一个参数的案例类就足够了,那将会很好。
我对这里的downvote感到困惑。 downvoter可以解释吗? – Blaisorblade