现在我有很多参数都可以没有,我想为整个表达式分配一个默认值。
现在我正在做类似的事情
var name: Option[String] = None
var surname: Option[String] = Some("Smith")
val fullName:String = {
name.map { name =>
surname.map { surname =>
surname + ", " + name
}.getOrElse("unknown")
}.getOrElse("unknown")
}
但这有点太冗长了。我想知道处理它的更惯用和优雅的方式是什么,理想情况下它应该是这样的(当然,它是伪代码!):
val fullName = (name + ", " + surname).getOrElse("unknown")
或类似的东西...
(只是避免双重 .getOrElse 会很棒......)
最佳答案
这个怎么样
scala> val fullName = (for(n <-name;s <-surname) yield n + s).getOrElse("unknown")
fullName: String = unknown
关于Scala:如何处理许多可以为 None 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10874883/