有没有更好的方式在scala中编写它?如何以更清晰的方式用Scala中的选项重写此条件?
def myFunction(somethingA: String, somethingB: Option[String]): Unit =
if (somethingB.isDefined)
foo("somethingA" -> somethingA, "somethingB" -> somethingB.get)
else
foo("somethingA" -> somethingA)
我想沿着线的东西:
def myFunction(somethingA: String, somethingB: Option[String]): Unit =
foo("somethingA" -> somethingA, somethingB.map("somethingB" -> _).getOrElse(.... pleh ....))
但是即使我更换“...... pleh ......”有某种表达的一部分,我不如果没有定义somethingB,它甚至不希望它添加映射。所以我不认为这是远程工作。不知道什么是正确的解决方案。
这就是我的想法。试图设想一些基于'flatMap'的选项,但不能解决这个问题。 +1 –
是的,这是干净的,我猜。谢谢 – Donuts