我有以下代码:

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


有没有更简洁的书写方式?

我想知道是否有与getOrElse相似的东西,如果可以成功(提取用户名),让我应用一个函数,否则返回一个纯值。

最佳答案

不是在一个方法调用中,而是在两个方法中:

users.get(userID).map(_.name).getOrElse("Invalid User ID")


糟糕,根据@sschaef的回答,显然终于在Scala 2.10中添加了Option.fold

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

10-09 03:14