128得票4回答
如何从List[Option]过滤掉None?

如果我在Scala中有一个List [Option [A]],那么筛选掉None值的惯用方法是什么? 一种方法是使用以下代码:val someList: List[Option[String]] = List(Some("Hello"), None, Some("Goodbye")) som...

120得票4回答
用Scala中的Option包装Java中返回null的方法?

假设我有一个方法session.get(str: String): String,但由于它来自Java,你不知道它会返回字符串还是空值。 有没有更简单的方法在Scala中处理这个问题?比如像ToOption(session.get("foo"))这样的神奇应用程序,然后我可以按照Scala的...

85得票5回答
在 for-comprehension 中使用 List 组合 Option 会根据顺序产生类型不匹配的问题。

为什么在Scala中使用这种结构会导致类型不匹配错误?for (first <- Some(1); second <- List(1,2,3)) yield (first,second) <console>:6: error: type mismatch; foun...

77得票2回答
如何将Scala的Option[X]集合转换为X集合

我开始探索Scala,其中一个让我感到好奇的事情是Option类型,以及能够消除null相关错误的承诺。 然而,我还没有找到一种方法将一个列表(或其他集合)中的Option[String]转换为String类型的集合(显然过滤掉任何值为None的选项)。 换句话说,我该如何从这里得到结果:...

75得票4回答
有没有一个Scala身份函数?

如果我有一个像 List [Option [A]] 这样的东西,并且我希望将其转换为 List [A],标准方法是使用flatMap : scala> val l = List(Some("Hello"), None, Some("World")) l: List[Option[jav...

74得票1回答
如何在Scala中从集合中获取选项?

只使用Scala集合API,是否有一种方法可以通过索引获取列表中的Option? 我正在寻找这个函数的等效版本,它存在吗? def optionalValue[T](l: List[T], index: Int) = { if (l.size < (index+1)) None ...

48得票6回答
为什么在Scala中使用foreach比get更好呢?

为什么在 Scala 的 Options 中,使用 foreach、map、flatMap 等方法比使用 get 更好?如果我使用 isEmpty,那么调用get 是安全的。

46得票4回答
Scala:将字符串转换为Int或None

我正在尝试从一个 XML 字段中获取一个数字... <Quantity>12</Quantity> ... 透过Some((recipe \ "Main" \ "Quantity").text.toInt) 有时 xml 中可能没有值。文本将是"",这会引发 java....

43得票6回答
为什么一些(null)不被视为None?

我很好奇:scala> Some(null) == None res10: Boolean = false 为什么Some(null)没有被转换成None?

41得票6回答
取消已选择的选项化期权

假设我有一个val s: Option[Option[String]]。它可能会有以下几种值: Some(Some("foo")) Some(None) None 我想将其简化,使第一个变为Some("foo"),而其他两个变为None。显然,有很多方法可以实现这一点,但我正在寻找一个简单...