gpt4 book ai didi

scala - 如何在 Scala 中提取包含在 Option 中的序列元素?

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

我正在学习 Scala 并且正在努力解决 Option[Seq[String]]我需要处理的对象。有一小部分字符串 Seq("hello", "Scala", "!")我需要过滤 charAt(0).isUpper健康)状况。

在平原上做 val arr = Seq("hello", "Scala", "!")就像 arr.filter(_.charAt(0).isUpper) 一样简单.但是,在 Option(Seq("hello", "Scala", "!")) 上做同样的事情将无法工作,因为您需要调用 .getOrElse首先。但即便如此,你怎么能应用这个条件呢?
arr.filter(_.getOrElse(false).charAt(0).isUpper是错的。我尝试了很多变体,搜索 stackoverflow 也没有帮助,我想知道这是否可能。有没有惯用的处理方式Option在 Scala 中包装案例?

最佳答案

如果您想申请 f: X => Y到一个值 x类型 X , 你写 f(x) .

如果您想申请 f: X => Y到一个值 ox类型 Option[X] , 你写 ox.map(f) .

你似乎已经知道你想用这个序列做什么,所以只要输入合适的 f进入 map .

例子:

val ox = Option(Seq("hello", "Scala", "!"))

ox.map(_.filter(_(0).isUpper)) // Some(Seq("Scala"))

关于scala - 如何在 Scala 中提取包含在 Option 中的序列元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51195849/

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