在Scala中,是否有一种简单的方法将case类转换为元组?

有一个简单的方法来将一个案例类转换成一个元组?

当然,我可以轻松地写出样板代码来做到这一点,但我的意思是没有样板。

我真正追求的是一种轻松地按照字典顺序进行案例分类的方法。 我可以通过导入scala.math.Ordering.Implicits._实现元组的目标,并且瞧,我的元组有一个为它们定义的Ordering。 但是,scala.math.Ordering中的含义不适用于一般的case类。

如何在随播对象中调用unapply().get()

 case class Foo(foo:String, bar:Int) val (str, in) = Foo.unapply(Foo("test", 123)).get() 

您可以尝试扩展TupleN扩展的ProductN特性,N = 1-22。 它会给你很多Tuple语义,比如_1_2等方法。 根据你如何使用你的types,这可能是没有创build一个实际的元组。

在试图做同样的事情的时候遇到了这个旧线程。 我最终决定了这个解决scheme:

 case class Foo(foo: String, bar: Int) val testFoo = Foo("a string", 1) val (str, in) = testFoo match { case Foo(f, b) => (f, b) }