gpt4 book ai didi

scala - 折叠选项列表以查找第一个或最后一个

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

我试图将选项列表折叠起来,以便返回第一个(或最后一个)Some值,或者如果没有任何Some值,则返回None。

scala> val opts = List(None, Some(1), None, Some(2), None)
opts: List[Option[Int]] = List(None, Some(1), None, Some(2), None)

scala> opts foldLeft(None)((a,io) => a match { case None => io; case Some(i) =>
a})
<console>:9: error: object None does not take parameters
opts foldLeft(None)((a,io) => a match { case None => io; case Some
(i) => a})
^

不知道我在做什么错。也可能有一种使用高阶函数更简单的方法,但是 here的任何内容都没有引起我的注意。

最佳答案

也许这可以解决您的问题-第一个元素:

opts.flatten.headOption

最后一个元素:
opts.flatten.lastOption
flatten方法将取消列表中所有 Option值的装箱并删除所有 None值。 headOption/ lastOption将为列表中的第一个/最后一个元素返回 Some,如果列表为空,则返回 None

关于scala - 折叠选项列表以查找第一个或最后一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8039261/

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