scala - 具有多个选项的案例类副本
问题描述
在 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.???
解决方案
这可能是您想要做的:
val myNewCaseClass: Option[Person] = for {
name <- maybeName
age <- maybeAge
} yield Person(name, age, maybeSomething)
推荐阅读
- stripe-payments - 条纹结帐 - 删除或使电子邮件字段只读
- delphi-2009 - Delphi 的 InputBox 是模态的吗?即它应该等待输入吗?
- google-chrome - upgrade-insecure-requests 指令有效,但仍会显示警告
- php - Laravel jwt-auth 我不使用标准的 Laravel 用户表
- flutter - 在没有构建器的情况下动态创建 ListTiles
- reactjs - Vscode中文单词编码问题
- flutter - 运行 flutter web 时出现错误,FormatException: Unexpected character (at character 1)
- javascript - 如何在不单击 HTML 或 JS 中的任何内容的情况下显示文本?
- swiftui - SwiftUI 聊天应用:反向列表和上下文菜单的困境
- rust - 如何引用结构实例方法