gpt4 book ai didi

scala - 根据 A 成员将 List[A] 转换为 List[Option[A]]

转载 作者:行者123 更新时间:2023-12-02 08:02:49 24 4
gpt4 key购买 nike

我已经定义了:

final case class EventOpt(start: Option[Long], end: Option[Long])
final case class Event(start: Long, end: Long)

我唯一感兴趣的对象是那些同时设置了两个字段的对象,我想过滤其余的

List[EventOpt] 我想使用 Some(Event) 将其转换为 List[Option[Event]]startend 都被设置,Nonestartend 中的任何一个时是 None 吗?

例如。

List(EventOpt(Some(1), None), EventOpt(None, Some(2)), EventOpt(Some(3), Some(4))) 
=>
List(None, None, Some(Event(4, 3)))

通过这样做,可以对最后一个列表执行简单的 flatMap 并省略 None

最佳答案

您不需要单独的 flatMap 步骤,只需立即收集您需要的内容即可:

eventOpts.collect { case EventOpt(Some(x), Some(y)) => Event(x, y) }

关于scala - 根据 A 成员将 List[A] 转换为 List[Option[A]],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54911276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com