次のようなマップを作成したいと思います。
def one = "one"
def two = "two"
def three = Some("three")
Map[String, String]("one" -> one, "two" -> two, "three" -> three)
メソッド 3 は String ではなく Option を返すため、これはコンパイルされません。私はこれを次のように機能させることができます:
Map[String, String]("one" -> one, "two" -> two) ++ three.map(t => Map("three" -> t)).getOrElse(Map.empty[String, String])
これで、一部の場合にのみオプションがリストに追加されます。
しかし、もっとエレガントな方法があるはずです。(たとえば、lift-json は、JValue を構築するときにオプションを除外する方法を知っています)。
助言がありますか?(PSここで問題を単純化しました)