Scala:Option[Seq[String]] 与 Seq[Option[String]]?

标签 scala

我正在创建一种方法,通过 ID 从数据库中检索用户列表。

我正在尝试决定将 ids 参数声明为 Option[Seq[String]]Seq[Option[String] 的优缺点]]

在什么情况下我应该选择其中一种而不是另一种?

最佳答案

用户列表既不能很好地表示为 Option[Seq[String]],也不能很好地表示为 Seq[Option[String]]。我希望像 List[User] 这样的内容作为用户列表。或者可能是 VectorSeq

如果您的字符串代表您的用户,并且 None 情况不执行任何操作,您可以考虑将其过滤掉。您可以使用

来做到这一点
val dbresult: Seq[Option[String]] = ???
val strings = dbresult collect { case Some(str) => str }

val strings = dbresult.flatten

但是如果不知道 Option[String]Option[Seq] 代表什么,就很难给出好的建议

关于Scala:Option[Seq[String]] 与 Seq[Option[String]]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32371382/

相关文章:

scala - 如何覆盖 awsglue 作业中的 couchbase 查询超时?

java - 如何将 Scala 数据集传递给 Apache Flink 中的 Java 类

scala - 如何在加特林的两个场景之间传递值?

scala - 带有选项的无形状平面图 HList 产生 HList

git - 哪些 sbt 插件可用于频繁(每天多次)从 git 发布项目?

scala - ALS 的 OutOfBoundsException - Flink MLlib

scala - 无法在 Scala 中创建包含 null 的元组

scala - Scala 中方差和可变性/不变性之间的关系

scala - Scala 有按列拆分 CSV 的好方法吗?

scala - 分发 Play 2.0.1 框架应用程序