scala-option相关内容

在 for-comprehension 中使用 List 组合选项会根据顺序给出类型不匹配

为什么这种构造会导致 Scala 中出现类型不匹配错误? for (first 如果我用 List 切换 Some ,它编译得很好: for (first 这也很好用: for (first 解决方案 For comprehensions 转换为对 map 或 flatMap 方法的调用.例如这个: for(x 变成: List(1).flatMap(x => List ..

Scala 可变选项?

我想要这样的东西: private val cachedResponse = mutable.Option.empty[A]def get: A = cachedResponse getOrElseUpdate db.findModel()定义更新:单位 = {db.updateModelcachedResponse.empty()//设置为 None/Option.empty} 我不是在寻找 ..
发布时间:2021-07-16 18:33:06 其他开发

从包装在 Option[] 中的对象读取多个变量

我有一个变量 obj: Option[MyObject] 并想从中提取多个变量 - 如果未设置对象,则应使用默认值. 目前我是这样做的: val var1 = obj match {case Some(o) =>变量1案例_ =>“默认 1"}val var2 = obj 匹配 {case Some(o) =>变量2案例_ =>“默认2"}... 这是非常冗长的.我知道我可以这样做: ..
发布时间:2021-07-15 21:16:11 其他开发

为什么 foreach 比 get for Scala Options 更好?

为什么在 Scala 选项中使用 foreach、map、flatMap 等被认为比使用 get 更好?如果我使用isEmpty,我可以安全地调用get. 解决方案 嗯,这又回到了“告诉,不要问"的问题上.考虑这两行: if (opt.isDefined) println(opt.get)//相对选择 foreach println 在第一种情况下,您正在查看 opt 的内部,然后根据 ..
发布时间:2021-07-15 20:10:12 其他开发

我如何(最好)将选项转换为尝试?

我如何(最好)将方法调用返回的 Option 转换为 Try(根据偏好,尽管可以使用任何或 scalaz \/ 甚至验证),包括指定一个如果合适,故障值? 例如,我有以下代码,感觉很笨拙,但至少可以完成(大部分)工作: import scala.util._案例类 ARef(值:字符串)案例类 BRef(值:字符串)案例类 A(ref: ARef, bRef: BRef)类 Mismatc ..
发布时间:2021-07-15 19:54:39 其他开发

Scala 中的合并选项

大多数 SQL 实现(这个问题与 SQL 无关,它只是一个例子)提供函数 COALESCE(x1,x2,...,xn) 返回 x1 如果不是 NULL, x2 否则只有 x2 不是 NULL ,以此类推.如果所有 xi 值都是 NULL,则结果为 NULL. 我想在 Scala 中得到类似于 SQL 的 COALESCE 的东西,用于 Option 值被 NULL 替换为 None.我给你举 ..
发布时间:2021-07-15 19:51:07 其他开发

如何从 Scala 集合中的索引中获取选项?

当尝试通过索引获取元素时,有没有办法仅使用 Scala 集合 API 来获取列表中的选项? 我正在寻找这个函数的等价物,它存在吗? def optionalValue[T](l: List[T], index: Int) = {if (l.size 谢谢 解决方案 是的,你可以将你的集合提升为一个函数 Int =>选项[A]: scala>列表(1,2,3).liftres0 ..
发布时间:2021-07-15 19:43:09 其他开发

将 2 个选项合并为 1 个

Scala 中是否有一个预定义函数 x 组合了 2 个选项,以便 Some(a) x None =>一些(一)无 x 有些(b) =>一些(b)无 x 无 =>没有任何 解决方案 是的,这就是 orElse 方法.它选择第一个定义的值,或者 None 如果两者都没有定义. scala>Some(1) orElse 无res0: Option[Int] = Some(1)标度>无或其他一些( ..
发布时间:2021-07-15 19:28:44 其他开发

从 Scala 中的 Some 中提取字段

我知道 Some 对象可以是 None 或我传递的对象之一.鉴于它不是 None 的事实,从 Some 对象中提取字段的理想方法是什么?我制作了一个“At"类,它的字段之一是“日期".由于 Some 类具有与 Product 特征的混合,因此以下工作正常: (返回类型为 Some(At) 的对象).productElement(0).asInstanceOf[At].date 但是有没有一种理 ..
发布时间:2021-07-15 19:23:57 其他开发

使用空参数从 Scala 调用 Java API

我有一些需要调用 Java API 的 Scala 代码 Java API 接受可能为 null 的参数.当然,我的 Scala 使用 Option. 例如,假设我有一个 Java 对象构造函数 Foo(Integer),其中 Integer 可能是 null.我想给它一个 Scala bar: Option[Int]. 我试过了 import scala.collection ..
发布时间:2021-06-10 18:41:14 Java开发

Scala最优雅的方式来处理选项并从Scala Map中引发异常

我有一张地图,想要: 无需处理Option即可获取值 在没有这样的密钥时记录一条消息. 在不存在密钥时,返回默认值(除了记录消息外)也很不错.这是可选的,因为当代码在此处失败时,就不应继续下去. 我有几种方法 val映射:Map [String,Int]//为简化起见//1个简短但与错误处理混淆的地方def getValue(key:String):Int = {map.get ..
发布时间:2021-04-30 19:58:15 其他开发

需要将Seq [Option [A]]转换为Option [Seq [A]]

使用案例 我有一个文件列表,这些文件可能具有有效的mime类型. 在我的代码中,我使用Option来表示. 我需要将Seq [Option [T]]转换为Option [Seq [T]],以便在某些文件无效的情况下不处理列表. 错误 这是以下实现中的错误: found : (Option[Seq[A]], Option[A]) => Option[Seq[A]] ..
发布时间:2020-11-09 18:36:48 其他开发