scala - 如何使用函数式编程更改 Scala 列表中的列表
问题描述
想象一下我有一个list[list[object]]
并且我想得到一个list[list[object.field]]
我怎么能通过函数式编程做到这一点
就像val list = list[list[object]]
我试过一样
val newList = list(_)(_1.map(object.field))
但这给了我一个错误,我很困惑
我刚开始函数式编程和 scala,所以这个语句可能有一些完全不合逻辑的东西
解决方案
您需要map
按以下方式使用
case class Obj(field: String)
val list = List[List[Obj]]()
val fields: List[List[String]] = list.map(_.map(_.field))
或相同
val fields: List[List[String]] = list.map(innerList => innerList.map(obj => obj.field))
或者如果你想要一个扁平的字段列表
val fields: List[String] = list.flatMap(_.map(_.field))
推荐阅读
- html - 下载按钮代码不起作用。为什么?
- python - Python:如何将 shapefile 放置在一个绘图中的光栅文件顶部,然后将绘图保存为 Jpeg 文件格式
- java - notifyItemRemoved(); 在我退出并重新进入活动之前不会从列表中删除评论
- c# - MS WORD VSTO 加载项:从文件读取清单时出现异常
- python - python函数调用继承
- definitelytyped - 是什么原因导致“Expected /\/\/ Type definitions for (non-npm package)?/”在 distinctlyTyped 上?
- python - 如何将我的 python EXE 文件静默添加到 Windows 启动
- python - 相关循环丢弃变量
- php - HTML PHP 字符串特殊字符转义
- java - 由于 Java,无法在 R 中运行 H2o