26得票2回答
在Scala中使用Option类型的isEmpty方法时如何检查是否为None?

我正在使用Option类型的isEmpty方法来检查是否没有值。我不想在我的情况下使用case match,我只想检查是否为None,因为我会向调用者抛出错误。但是isEmpty方法失败了,即使值是None。 这是我尝试过的!val questionOption = Question.get...

25得票6回答
如果列表不为空,将列表转换为Option类型

我有一个方法,应该将列表转换为一个对象的Option,如果列表为空,则返回None。 我有一种方法,可以将一个列表转换为一个对象的Option。如果这个列表为空,那么返回None。def listToOption(myList: List[Foo]): Option[Bar] = { i...

25得票2回答
如何从Java调用Scala的Option构造函数

我正在处理一个混合Java/Scala项目,我试图从Java中调用一个Scala对象的方法。该方法以一个Option[Double]作为参数。我认为这样可以实现:Double doubleValue = new Double(1.0); scalaObj.scalaMethod(new Som...

24得票3回答
如何将X => Option[R]转换为PartialFunction[X,R]

只要我们有一个PartialFunction[X,R],将其转换为返回Option[R]的函数就非常容易,例如:def pfToOptf[X, R](f: PartialFunction[X,R])(x: X) = if (f.isDefinedAt(x)) Some(f(x)) ...

23得票2回答
Java Optional和Scala Option的区别

最后,介绍Java 8的新功能Optional的这篇文章指出: Optional不像Scala中的Option[T]那样强大(但至少它不允许包装null)。该API不如空值处理简单明了,可能会慢得多。但是,在一致使用Optional的情况下,编译时检查的优点以及可读性和文档价值远远超过了缺...

22得票5回答
在Scala中,是否存在将异常转换为选项的预先存在的库函数?

这基本上是为了包装那些在输入不合法时会抛出异常的Java工厂方法。我正在寻找类似于基础库中的东西: def exceptionToOption[A](f: => A):Option[A] ={ try{ Some(f)} catch{ case e...

22得票5回答
Scala:使得从Option[A]到Option[B]的隐式转换 A->B 起作用

我正在尝试编写一个函数,以通用的方式重复使用我对对象A->对象B的隐式转换,当它们被包装在Option中时,使得Option[A]->Option[B]的转换也能起作用。 我的想法是: implicit def fromOptionToOption[A, B](from: Option[A...

22得票8回答
如何将Option最佳转换为Try?

如何将一个方法调用返回的 Option 最好地转换为 Try(首选),尽管 Either 或 scalaz 的 \/ 或甚至 Validation 也可以,包括在必要时指定 Failure 值? 例如,我有以下代码,感觉有点笨重,但至少可以完成(大部分)工作:import scala.uti...

18得票1回答
为什么Option没有直接扩展Iterable trait?

Option可以隐式转换为Iterable - 但是为什么它不直接实现Iterable呢: Option可以通过隐式转换变成Iterable类型,但为什么它本身不直接实现Iterable呢?def iterator = new Iterator[A] { var end = !isDef...

17得票2回答
Scala:过滤一个包含Option的集合

假设我有一个函数用于检查是否可以对A的实例进行某种操作,如果可以,则返回B的一个实例,否则返回None: def checker[A,B]( a: A ) : Option[B] = ... 现在我想形成一个新的集合,其中包含所有有效的B实例,且删除None值。以下代码似乎可以完成任务,但...