我有以下的情况下类:如何检查类型元组在编译时
case class MyClass[A,B](a:A, b:B)
我想添加一个功能类似解压到MyClass
所以如果A
和B
是元组类型的话,我想提取他们像下面这样:
val item = MyClass[(Int,String), (Int,String)]((2,"two"), (3,"three"))
val item_left = MyClass(item.a._1, item.b._1)
val item_right = MyClass(item.a._2, item.b._2)
我应该怎么做,并在编译时检查元组的类型?我不想在伴侣对象中定义它,我希望它是MyClass
中的函数。我知道我可以定义一个implicit
函数,但它是唯一的方法吗?
可能https://stackoverflow.com/questions/21442473/scala-generic-unzip-for-hlist#21444327 – Reactormonk
签出类型约束:http://stackoverflow.com/questions/3427345/what-do-and-mean-in-scala-2-8-and-where-are-they-documented –