我有以下代码:
val userName = users.get(userID) match {
case Some(user) => user.name
case None => "Invalid User ID"
}有没有更简洁的方式来写这篇文章?
我想知道是否有类似于getOrElse的东西,可以让我在函数成功时应用它(提取用户名),否则返回一个普通值。
发布于 2013-02-02 22:11:10
不是在一个方法调用中,而是在两个方法调用中:
users.get(userID).map(_.name).getOrElse("Invalid User ID")根据@sschaef的回答,显然Option.fold终于在Scala2.10中被添加了。
发布于 2013-02-02 22:13:23
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 idOption.fold在类型推断方面有一些问题,有关潜在的陷阱,请参阅another answer。
https://stackoverflow.com/questions/14662678
复制相似问题