16得票2回答
为什么用Option包装一个通用方法调用会延迟ClassCastException?

假设我有这样一个数组*: val foo: Any = 1 : Int Option(foo.asInstanceOf[String]) 由于明显的原因而失败: // java.lang.ClassCastException: java.lang.Integer cannot be c...

16得票5回答
在Scala中,何时应使用Option.empty[A],何时应使用None?

在Scala中,当我想将某物设置为None时,我有几个选择:使用None或Option.empty[A]。 我应该只选择一个并始终使用它,还是在某些情况下应该使用其中之一? 示例:scala> def f(str: Option[String]) = str f: (str: Opt...

15得票4回答
在Scala中的合并选项

大多数 SQL 实现(这个问题与 SQL 无关,只是一个例子)都提供了函数 COALESCE(x1,x2,...,xn),如果 x1 不为 NULL,则返回 x1,否则仅当 x2 不为 NULL 时返回 x2,以此类推。如果所有的 xi 值都是 NULL,那么结果就是 NULL。 我想在 S...

15得票5回答
Scala中返回列表中第一个Some的值

我有一个列表 l:List[T1],目前我正在执行以下操作:myfun : T1 -> Option[T2] val x: Option[T2] = l.map{ myfun(l) }.flatten.find(_=>true) myfun函数返回None或Some,flatten...

15得票5回答
如何在Scala中将一个选项元组转换为选项元组的元组?

这个问题与这个问题相反。val x = Some((1, 2)) val (y: Option[Int], z: Option[Int]) = ??? 纯Scala答案和Scalaz答案都很有帮助。

14得票3回答
获取URL时,是返回None还是抛出异常更好?

我有一个Scala辅助方法,目前尝试获取URL并返回包含该网页HTML的Option[String]。 如果出现任何异常(格式错误的URL、读取超时等...)或者出现任何问题,它将返回None。问题是,是将异常抛出以便调用代码可以记录异常更好,还是在这种情况下返回None更好?

14得票2回答
将只有1个元素的列表转换为选项(Option)

假设我有一个List[T],需要获取其中的一个元素,并将其转换为Option类型。 val list = List(1,2,3) list.take(1).find(_=>true) // Some(1) val empty = List.empty empty.take(1).fi...

13得票5回答
Scala: 带有两个或多个选项的映射

基本上,我正在寻找最符合 Scala 风格的方式来完成以下操作:def sum(value1: Option[Int], value2: Option[Int]): Option[Int] = if(value1.isDefined && value2.isDefined...

13得票4回答
有没有办法使用反射在运行时访问Scala Option声明的类型?(涉及IT技术)

因此,我有一个Scala类,看起来像这样:class TestClass { var value: Option[Int] = None } 我正在解决一个问题,其中我有一个字符串值,并希望在运行时使用反射将其强制转换为Option[Int]。因此,在另一段代码中(该代码对TestClas...

13得票1回答
为什么在for循环中,Option需要显式地使用toList方法?

使用简单的 Option 和 for 循环可以正常工作:scala> for (lst <- Some(List(1,2,3))) yield lst res68: Option[List[Int]] = Some(List(1, 2, 3)) 但是循环遍历选项的内容却不行:sca...