在 Scala 中 - 将案例类列表转换为元组列表

2024-03-10

我有一堂案例课

case class table(a: String, b: Option[String])

我有一个这种类型的列表 - 我们称之为 list1

val list1: List[table] = tabele.get() // just filling the list from an SQL 

现在我想将“表”列表更改为 (String,Option[String]) 的简单列表 我在这个板上发现的是如何将案例类转换为元组 像那样:

case class table(a:String, b:Int)
val (str, in) =  table.unapply(table("test", 123)).get()

但我不知道如何在列表上使用它:( 我尝试使用 foreach 进行一些操作,例如:

val list2: List[(String, Option[String])] = Nil
list1.foreach( x => list2 :: table.unapply(x).get())
'error (String,Option[String]) does not take parameters

所以我的问题是 -> 如何在列表的每个元组上使用 unapply ?

预先感谢


PS:我实际上想更改列表的类型,因为我想在该列表上使用“.toMap” - 喜欢:

val map1 = list1.toMap.withDefaultValue(None)

出现错误:

Cannot prove that models.table <:<(T,U)

它适用于 (String, Option[String]) 列表


您想要转换列表中的每个元素并给出另一个列表。你需要foreach的表弟,map:

Try:

 list1.map(table.unapply).flatten

这是更好的书写方式:

 list1.map( tbl => table.unapply(tbl) ).flatten

另一种方法是

 list1.map(table.unapply(_).get)

哪个是简写

 list1.map( tbl => table.unapply(tbl).get )

只是为了使用一个版本for:(这说明了如何unapply在引擎盖下使用for理解)

 for (table(s,ms) <- list1) yield (s, ms)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Scala 中 - 将案例类列表转换为元组列表 的相关文章

随机推荐

  • JS async/await - 为什么await需要异步?

    为什么使用await需要声明其外部函数async 例如 为什么这个 mongoose 语句需要它所在的函数来返回一个承诺 async function middleware hostname done try let team await
  • MPMediaItem 未使用 MPMediaItemPropertyAssetURL 在 AVAudioPlayer 中播放

    我有这段代码 用于查找并播放 MPMediaItem MPMediaPropertyPredicate predicate MPMediaPropertyPredicate predicateWithValue self persisten
  • 注册自定义单元格时不调用prepareForSegue

    这不是 Segue 标识符拼写错误或类似问题 方法prepareForSegue当我点击表视图控制器中的单元格时 实际上并没有被调用 如果我点击单元格 则仅当我添加新单元格时 控制语句之前的日志语句才不会记录 void prepareFor
  • 1/252 = 0 在 C# 中?

    我正在做计算 在调试时我发现了这个 double num 1 252 当我调试它时 数字设置为零 0 是否有一个原因 我想将其作为实际计算 Thanks 是 该计算正在执行integer算术 尝试这个 double num 1 0 252
  • JavaScript Chrome 扩展 - 从弹出窗口到内容创建新选项卡后发送消息

    在我的扩展的 popup js 中 我想创建一个新选项卡并发送一条消息 content js 必须监听消息并回答 但它不起作用 我尝试了很多在其他问题中找到的解决方案 但没有成功 这是我的文件 Manifest json name Stam
  • 嵌入导航控制器

    我刚刚将 Xcode 从 4 2 更新到 4 3 3 但我不断遇到问题 是否可以在单视图应用程序中添加导航控制器 因为当我尝试将导航控制器嵌入到控制器中时 什么也没有发生 我希望有两个视图控制器通过按钮连接到第二个控制器 并通过导航栏连接到
  • 在 javafx 2 中通过拖动来移动节点的正确方法?

    我正在将具有大量自定义绘画的 Swing Graphics2D 应用程序转换为 JavaFX2 应用程序 虽然我非常喜欢新的 API 但在绘制椭圆时 我似乎遇到了性能问题 我想在鼠标移动到鼠标光标下方时绘制椭圆 当我以稳定的方式 不是快得离
  • 带标头的节点获取 API GET

    https www npmjs com package node fetch https www npmjs com package node fetch节点 v6 4 0 npm v3 10 3 我想在此 API 调用中发送带有自定义标头
  • 如何将 PCL 转换为 .Net 标准库

    所以我有一个 PCL 项目 但现在想更新它以支持 Net Standard 我读过微软网站步骤 https learn microsoft com en us dotnet core porting libraries converting
  • C# 将字节转换为字符串并写入txt文件

    例如我该如何转换byte b new byte 1 b 1 255串起来 我需要一个值为 255 的字符串变量string text 255 然后将其存储在文本文件中 从字节开始 byte b new byte 255 string s E
  • 如何读取多列ListView控件的列名?

    查找 ListView 列名称的最佳方法是什么 我使用在该论坛上找到的过程将 DataTable 转换为列表 但我无法将 Id 列放在第一位 特别是因为并非所有 DataTable 都有 Id 列 我可以在集合 listView Colum
  • IQueryable 和 DbQuery 有什么区别?

    跟进这个问题 答案 如何使实体框架数据上下文只读 https stackoverflow com questions 10437058 how to make entity framework data context readonly 解
  • d3 中的动画折线图

    我找到了example http duspviz mit edu d3 workshop transitions animation d3 中的动画线条系列 我正在尝试在我的中制作相同的动画TS code 但它不成功 Start Anima
  • 如何禁用移动响应式缩放?

    我编写了以下代码来禁用放大或缩小 除以下手机外 它在所有手机上都能正常工作最近的 iPhone 例如 iphone 6 iphone 7 此功能不起作用 我哪里做错了 你的代码没有问题 只是IOS 10不支持它 你可以找到更多here ht
  • 针对不受信任的 SSL 端点生成 WCF 代理

    我需要为客户端公开的服务生成 WCF 代理 该服务被严格锁定 因此事实证明这很困难 另外 我是 WCF 的新手 所以我可能会遗漏一些明显的东西 客户端仅向我们的生产服务器开放了防火墙 因此我无法从我的开发计算机上的 Visual Studi
  • 以编程方式在(线性)布局(即 ScrollView 内部)内添加视图

    我有一个应用程序 点击一些后 会显示新闻内容的活动 我想在其底部显示注释 这些注释是在异步任务中动态加载的 一种方法是使用 ListView 和自定义 ArrayAdapter 但是 我必须将 ListView 放入 ScrollView
  • ASP.NET MVC2 错误:没有为此对象定义无参数构造函数

    编辑 这是固定的 请参阅下面的解决方案 Solution 首先 我错误地将节点定义在 shared web config 中 而不是 WebUI 项目根目录中的 web config 中 我也没有在 web config 中正确定义我的连接
  • 每小时行数

    我正在探索自行车共享数据 我合并了两个表 一个包含自行车共享数据 另一个包含天气数据 开始日期 列位于自行车共享数据中 日期 列是天气数据 我想对每小时的 ID 计数进行分组 这样我就可以看到天气对自行车使用的影响 ID Start End
  • html 在双语网站中保留语言

    我正在开发一个双语网站 西班牙语 英语 我采纳了第二个答案的建议在这篇文章中 https stackoverflow com questions 32008125 using javascript to change website lan
  • 在 Scala 中 - 将案例类列表转换为元组列表

    我有一堂案例课 case class table a String b Option String 我有一个这种类型的列表 我们称之为 list1 val list1 List table tabele get just filling t