Nul*_*yte 1 scala tuples sequence
case class Foo(a: Int, b: Int, c: Int)
val s = Seq(1, 2, 3)
val t = (1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
我知道我可以从元组创建案例类:
Foo.tupled(t)
Run Code Online (Sandbox Code Playgroud)
但是如何从 Sequence 创建案例类?我在序列中有 ~10 个整数元素。
一种选择是向apply伴随对象添加相应的工厂方法,如下所示
object Foo {
def apply(xs: Seq[Int]): Option[Foo] = {
xs match {
case Seq(a, b, c) => Some(Foo(a, b, c))
case _ => None
}
}
}
Foo(s) // : Option[Foo] = Some(value = Foo(a = 1, b = 2, c = 3))
Run Code Online (Sandbox Code Playgroud)