gpt4 book ai didi

scala - Scala:过滤选项集合

转载 作者:行者123 更新时间:2023-12-03 13:47:19 24 4
gpt4 key购买 nike

说我有一个函数,该函数检查某些操作是否适用于A的实例,如果适用,则返回B或None的实例:

   def checker[A,B]( a: A ) : Option[B] = ...


现在,我要形成一个新集合,其中包含B的所有有效实例,并删除None值。以下代码似乎可以完成任务,但是肯定有更好的方法:

   val as = List[A]( a1, a2, a3, ... )
val bs =
as
.map( (a) => checker(a) ) // List[A] => List[Option[B]]
.filter( _.isDefined ) // List[Option[B]] => List[Option[B]]
.map( _.get ) // List[Option[B]] => List[B]


谢谢!

最佳答案

应该这样做:

val bs = as.flatMap(checker)

关于scala - Scala:过滤选项集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7579910/

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