我需要修复一些Scala代码,当实际的电子邮件为“空”时,应该生成虚拟电子邮件。
到目前为止看起来像这样:
val maybeEmail = (response.json \ "email").asOpt[String].map(_.toLowerCase)
User(maybeEmail, ...) // User(email: Option[String], ....)
现在,我想将“maybeEmail”重置为:“@ dummy-email.com”,当它为空时。
这似乎非常微不足道,但我已经拍了几张照片而无法让它发挥作用。 到目前为止,我正在尝试这样的事情(这些都没有用):
maybeEmail.getOrElse[String](someId.concat("@dummy-email.com"))
所以请支持我。感谢。
答案 0 :(得分:0)
我真的不明白你的问题,但让我们试试这个小答案,我们会帮助你。
如果你想要一个字符串作为结果,使用默认值,你可以这样做:
val optMail = Some("real@real.org")
val mail = optMail getOrElse "dummy@dummy.org"
如果您想在结果中使用选项而不是字符串:
val optMail2 = Some("real@real.org")
val mail2 = optMail2 orElse Some("dummy@dummy.org")
似乎你想要的是第二种情况。你的代码就是这样:
val maybeEmail = (response.json \ "email").asOpt[String].map(_.toLowerCase) orElse Some(someId.concat("@dummy-email.com"))
User(maybeEmail, ...) // User(email: Option[String], ....)