在Scala中,是否有一个预先存在的库函数用于将异常转换为选项?
这基本上是包装 java 工厂方法,如果无法根据输入创建项目,这些方法会抛出异常。我正在基础库中寻找类似的内容: def exceptionToOption[A](f: => A)…
Clojure seq 作为 Scala Option 的替代品[T]
Scala 提供了类 Option[T]、Some[T] extends Option[T] 和 None extends Option[Nothing] 的层次结构,我发现对于包装可以返回 null 的 Java 方法调用…
Scala:过滤选项集合
假设我有一个函数,用于检查某些操作是否适用于 A 的实例,如果适用,则返回 B 的实例或 None: def checker[A,B]( a: A ) : Option[B] = ... 现在我…
从选项中类型的方法生成部分应用的函数
假设我正在编写一个 GUI class Kitteh (val age: Int) { require (age < 5) def saveMeow(file: File) = { /* implementation */ } def savePurr(file…
从 Option[] 包装的对象中读取多个变量
我有一个变量 obj: Option[MyObject] 并希望从中提取多个变量 - 如果未设置该对象,则应使用默认值。 目前我是这样做的: val var1 = obj match { cas…
一些带有 asInstanceOf 的构造函数
当我写我的 最近的回答我也尝试以更“功能”的方式解决问题,但遇到了以下问题: scala> "1".asInstanceOf[Int] java.lang.ClassCastException: java.…
使用某些 Scala Option 方法的示例
我已阅读博客文章推荐我此处。现在我想知道这些方法有什么用处。您能否展示使用 forall(而不是 foreach)和 Option 的 toList 的示例?…
嵌套 Scala 匹配器为什么 Some(Some(1),1) 无法匹配?
嵌套匹配似乎不起作用,这是一个奇怪的限制。 该行为的一个示例如下: Some(Some(1),2) match { | case Some(Some(a),b) => a | case e => e | } :9: …
Scala:将 None 用于除空选项之外的其他目的
根据文档,None 对象旨在“表示不存在的值”。据我所知,它主要用作空的Option。但您认为将其用于其他目的是个好主意吗?例如,在我的库中,我想要一…
Scala Option[(A, B)] 模式匹配
我正在编写一个 Java 代码生成器。 我有一个不可变的 Map,其中包含从 java.sql.Types [Int] 到 (String, String) 元组的映射,其中第一个值是 Java …
为什么 Some(null) 不被视为 None?
我很好奇: scala> Some(null) == None res10: Boolean = false 为什么 Some(null) 不转换为 None?…
为什么 Option 没有折叠方法?
我想知道为什么 scala.Option 没有这样定义的方法 fold : fold(ifSome: A => B , ifNone: => B) 相当于 map(ifSome).getOrElse(ifNone) 是否没有比使…
如何从 Java 调用 scala 的 Option 构造函数
我正在开发一个混合 java/scala 项目,并且尝试从 Java 调用 scala 对象的方法。此方法采用 Option[Double] 作为参数。我认为这会起作用: Double dou…
将 AnyRef 装箱到选项中的方法在哪里?
在这篇 James Iry 的博文中,他写道: 另外,Scala 有一个“选项”方法,可以根据值是否为 null 将值提升为 Some(value) 或 None ... 我似乎在任何地…