在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) }