scala-option相关内容
为什么这种构造会导致 Scala 中出现类型不匹配错误? for (first 如果我用 List 切换 Some ,它编译得很好: for (first 这也很好用: for (first 解决方案 For comprehensions 转换为对 map 或 flatMap 方法的调用.例如这个: for(x 变成: List(1).flatMap(x => List
..
我想要这样的东西: private val cachedResponse = mutable.Option.empty[A]def get: A = cachedResponse getOrElseUpdate db.findModel()定义更新:单位 = {db.updateModelcachedResponse.empty()//设置为 None/Option.empty} 我不是在寻找
..
我有一个变量 obj: Option[MyObject] 并想从中提取多个变量 - 如果未设置对象,则应使用默认值. 目前我是这样做的: val var1 = obj match {case Some(o) =>变量1案例_ =>“默认 1"}val var2 = obj 匹配 {case Some(o) =>变量2案例_ =>“默认2"}... 这是非常冗长的.我知道我可以这样做:
..
这基本上是为了包装 java 工厂方法,如果无法根据输入创建项目,则会抛出异常.我正在基础库中寻找类似的东西: def exceptionToOption[A](f: => A):Option[A] ={尝试{一些(f)}抓住{情况e:异常=>没有任何}} 用法: val id:Option[UUID] = exceptionToOption(UUID.fromString("this w
..
为什么在 Scala 选项中使用 foreach、map、flatMap 等被认为比使用 get 更好?如果我使用isEmpty,我可以安全地调用get. 解决方案 嗯,这又回到了“告诉,不要问"的问题上.考虑这两行: if (opt.isDefined) println(opt.get)//相对选择 foreach println 在第一种情况下,您正在查看 opt 的内部,然后根据
..
考虑来自 Scala 解释器的以下内容: scala>JSON.parseFull("""{"name":"jack","greeting":"hello world"}""")res6: Option[Any] = Some(Map(name -> jack, greeting -> hello world)) 为什么 Map 会在 Some() 中返回?我该如何使用它? 我想把这些值
..
我如何(最好)将方法调用返回的 Option 转换为 Try(根据偏好,尽管可以使用任何或 scalaz \/ 甚至验证),包括指定一个如果合适,故障值? 例如,我有以下代码,感觉很笨拙,但至少可以完成(大部分)工作: import scala.util._案例类 ARef(值:字符串)案例类 BRef(值:字符串)案例类 A(ref: ARef, bRef: BRef)类 Mismatc
..
大多数 SQL 实现(这个问题与 SQL 无关,它只是一个例子)提供函数 COALESCE(x1,x2,...,xn) 返回 x1 如果不是 NULL, x2 否则只有 x2 不是 NULL ,以此类推.如果所有 xi 值都是 NULL,则结果为 NULL. 我想在 Scala 中得到类似于 SQL 的 COALESCE 的东西,用于 Option 值被 NULL 替换为 None.我给你举
..
当尝试通过索引获取元素时,有没有办法仅使用 Scala 集合 API 来获取列表中的选项? 我正在寻找这个函数的等价物,它存在吗? def optionalValue[T](l: List[T], index: Int) = {if (l.size 谢谢 解决方案 是的,你可以将你的集合提升为一个函数 Int =>选项[A]: scala>列表(1,2,3).liftres0
..
只要我们有一个 PartialFunction[X,R],很容易将它转换成一个返回 Option[R] 的函数,例如 def pfToOptf[X, R](f: PartialFunction[X,R])(x: X) =if (f.isDefinedAt(x)) Some(f(x))其他 无 但是,如果任务相反怎么办:假设我有一个函数 f 获取 X 作为参数并返回 Option[R]因此.我想
..
使用 Scala 2.7.7: 如果我有一个选项列表,我可以使用 for-comprehension 将它们展平: val listOfOptions = List(None, Some("hi"), None)listOfOptions: List[Option[java.lang.String]] = List(None, Some(hi), None)标度>for (opt
..
我正在尝试编写一个函数,当它们以通用方式包装在 Option 中时,我为对象 A -> 对象 B 重新使用隐式转换,以便 Option[A] -> Option[B] 转换也有效. 我想到的是: implicit def fromOptionToOption[A, B](from: Option[A])(implicit conversion: (A) => B): Option[B] =
..
Scala 中是否有一个预定义函数 x 组合了 2 个选项,以便 Some(a) x None =>一些(一)无 x 有些(b) =>一些(b)无 x 无 =>没有任何 解决方案 是的,这就是 orElse 方法.它选择第一个定义的值,或者 None 如果两者都没有定义. scala>Some(1) orElse 无res0: Option[Int] = Some(1)标度>无或其他一些(
..
我知道 Some 对象可以是 None 或我传递的对象之一.鉴于它不是 None 的事实,从 Some 对象中提取字段的理想方法是什么?我制作了一个“At"类,它的字段之一是“日期".由于 Some 类具有与 Product 特征的混合,因此以下工作正常: (返回类型为 Some(At) 的对象).productElement(0).asInstanceOf[At].date 但是有没有一种理
..
我开始探索 Scala,我感兴趣的一件事是 Option 类型和能够消除 null 相关错误的承诺. 但是,我无法弄清楚如何将 Option[String] 的列表(或其他集合)转换为 String 的集合>(显然过滤掉任何None的值). 换句话说,我如何从中获得: List[Option[Int]] = List(Some(1)) ...到这个: List[Int] = Li
..
我有一些需要调用 Java API 的 Scala 代码 Java API 接受可能为 null 的参数.当然,我的 Scala 使用 Option. 例如,假设我有一个 Java 对象构造函数 Foo(Integer),其中 Integer 可能是 null.我想给它一个 Scala bar: Option[Int]. 我试过了 import scala.collection
..
为什么这种构造会在Scala中导致类型不匹配错误? 用于(第一:6:错误:类型不匹配;找到:列表[(Int,Int)]必填:选项[?]for(第一
..
我有一张地图,想要: 无需处理Option即可获取值 在没有这样的密钥时记录一条消息. 在不存在密钥时,返回默认值(除了记录消息外)也很不错.这是可选的,因为当代码在此处失败时,就不应继续下去. 我有几种方法 val映射:Map [String,Int]//为简化起见//1个简短但与错误处理混淆的地方def getValue(key:String):Int = {map.get
..
我有这样的代码: optionBoolean.getOrElse(false)&&otherOptionBoolean.getOrElse(false) Scalastyle告诉我可以简化它.怎么样? 解决方案 您可以尝试以下操作: Seq(optionBoolean,otherOptionBoolean).forall(_.contains(true)) 在Scala 2
..
使用案例 我有一个文件列表,这些文件可能具有有效的mime类型. 在我的代码中,我使用Option来表示. 我需要将Seq [Option [T]]转换为Option [Seq [T]],以便在某些文件无效的情况下不处理列表. 错误 这是以下实现中的错误: found : (Option[Seq[A]], Option[A]) => Option[Seq[A]]
..