我有以下代码:
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/