scala - 更强大的 getOrElse?

标签 scala

我有以下代码:

val userName = users.get(userID) match {
  case Some(user) => user.name
  case None => "Invalid User ID"
}

有没有更简洁的写法?

我想知道是否有类似于 getOrElse 的东西可以让我在成功时应用一个函数(提取用户名),否则返回一个普通值。

最佳答案

scala> Map("a" -> 1).get("a").fold("invalid user id")("value:"+_)
res15: String = value:1

scala> Map("a" -> 1).get("b").fold("invalid user id")("value:"+_)
res16: String = invalid user id

Option.fold 在类型推断方面存在一些问题,有关潜在的陷阱,请参阅 another回答。

关于scala - 更强大的 getOrElse?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14662678/

相关文章:

scala - 如何合并SPARK数据框创建的文件夹中的所有零件文件并重命名为scala中的文件夹名称

scala - Scalatra DSL 使用了哪些 Scala 概念?

scala - 为什么方法参数会导致 Mockito 的 NotSerializableException?

scala - Spark 2.2 非法模式组件 : XXX java. lang.IllegalArgumentException:非法模式组件:XXX

scala - 当我在不广播的情况下在 Scala 中使用全局 map 变量时会发生什么

scala - 将 Scala Actor 转换为 Akka Actor : One Instance To Call Methods On

Scala Seq - 只接受相同子类型的元素

scala - 如何将宏中的短类型名称解析为完整类型名称

list - 如何找到具有最小值的元素的索引?

scala - Actors 中 future 的执行上下文