来自序列的Scala案例类

case class Foo(a: Int, b: Int, c: Int)


val s = Seq(1, 2, 3)
val t = (1, 2, 3)

我知道我可以从元组创建案例类:

Foo.tupled(t)

但是如何从 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))


以上是来自序列的Scala案例类的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>