После того, как я узнал, что классы случаев расширяют продукт, я Удивлялся, почему они не расширяют Productn. Например, учитывая код, как:
case class Foo(a: Int)
, я ожидал foo (1) .asinstanceof [product1 [int]]
для работы, но он не (проверяется со Scala 2.9.1 и подтверждено Другие источники и продуктом
Документация).
Я был заинтересован в этом, потому что хотел объявить классы, такие как:
abstract class UnaryOp[T1 <: Exp[_], R](t1: T1) extends Exp[R] {
this: Product1[T1] =>
}
Таким образом, узел для унаправления, должен быть реализован продуктом1. Было бы здорово, если бы быть просто классом в случае с одним параметром будет достаточно для этого.