加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala:如何处理许多可以是None的参数

发布时间:2020-12-16 19:23:02 所属栏目:安全 来源:网络整理
导读:现在我有很多可以没有的参数,我想将整个表达式赋值为默认值. 现在我正在做的事情 var name: Option[String] = Nonevar surname: Option[String] = Some("Smith")val fullName:String = { name.map { name = surname.map { surname = surname + "," + name }.
现在我有很多可以没有的参数,我想将整个表达式赋值为默认值.

现在我正在做的事情

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读