gpt4 book ai didi

scala - 如何检查 List[Option[_]] 中是否有 None 并返回元素的名称?

转载 作者:行者123 更新时间:2023-12-04 09:03:22 26 4
gpt4 key购买 nike

我有多个 Option的。我想检查它们是否具有值。如果 OptionNone ,我想回复用户这个。否则继续。

这就是我所做的:

val name:Option[String]
val email:Option[String]
val pass:Option[String]
val i = List(name,email,pass).find(x => x match{
case None => true
case _ => false
})
i match{
case Some(x) => Ok("Bad Request")
case None => {
//move forward
}
}

以上我可以替换 findcontains ,但这是一种非常肮脏的方式。我怎样才能使它优雅和一元?

编辑:我也想知道什么元素是 None .

最佳答案

另一种方式是作为理解:

val outcome = for {
nm <- name
em <- email
pwd <- pass
result = doSomething(nm, em, pwd) // where def doSomething(name: String, email: String, password: String): ResultType = ???
} yield (result)

这将生成 outcome作为 Some(result) ,您可以通过各种方式进行查询(集合类可用的所有方法:map、filter、foreach 等)。例如:
outcome.map(Ok(result)).orElse(Ok("Bad Request"))

关于scala - 如何检查 List[Option[_]] 中是否有 None 并返回元素的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18286626/

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