scala - Scala将案例类列表转换为另一个案例类列表
问题描述
case class student1(name :String, marks :Long)
case class student2(studentName:String, marks:Long)
val mylist:List[student1] = List( student1("a",100) , student1("b",200))
我怎样才能以比这更优雅的方式转换mylist
成?List[student2]
val res: List[student2] = mylist.map(s => student2(s.name,s.marks))
解决方案
您可以添加一个辅助构造函数。
case class student2(studentName:String, marks:Long) {
def this(s:student1) = this(s.name, s.marks)
}
. . .
val res: List[student2] = mylist.map(new student2(_))
或者你可以只做一个模式匹配,但是你真的应该把你的类名大写。
val res: List[Student2] =
mylist.map{case Student1(n,m) => Student2(n,m)}
推荐阅读
- laravel - Vuetify.js - IE11 不显示带有 babel-polyfill 的数据表
- mysql - 无法在 OS-X High Sierra (10.13.6) PID 文件上启动 MySql (8.0.15)
- c#-4.0 - DataTable 到 Generic List 使用 Task 使其更快
- python - 使用批处理文件运行 Django 项目后,Chrome 无法打开
- typescript - 将联合类型与不接受参数作为对象的函数一起使用
- react-native - 文本输入最小长度反应原生
- asp.net-mvc - 使用 MSBuild.exe 部署 MVC 项目失败
- amazon-s3 - Glue Crawler 无法排除 .csv.metadata 文件
- html - 如何修复 NativeScript 中网格布局中的重叠项目?
- android - 如何使用 gomobile 发布输出非调试 apk?