首页 > 解决方案 > 具有多个选项的案例类副本

问题描述

在 Scala 中,案例类是不可变的。
制作具有多个选项的案例类的修改副本的最佳方法是什么?

例如:

case class Person(name:String, age:Int, something:Option[String])

val maybeName = Some("alice")
val maybeAge = Some(20)
val maybeSomething = Some("hi")

var myNewCaseClass = myCaseClass.???

标签: scala

解决方案


这可能是您想要做的:

val myNewCaseClass: Option[Person] = for {
  name <- maybeName
  age <- maybeAge
} yield Person(name, age, maybeSomething)

推荐阅读