我想建立一個地圖是這樣的:構建地圖與選項值
def one = "one"
def two = "two"
def three = Some("three")
Map[String, String]("one" -> one, "two" -> two, "three" -> three)
這不能編譯,因爲該方法三隻返回一個選項,而不是一個字符串。 我可以使這項工作是這樣的:
Map[String, String]("one" -> one, "two" -> two) ++ three.map(t => Map("three" -> t)).getOrElse(Map.empty[String, String])
現在只會選項添加到列表中時,它的一些。
但是必須有更優雅的方式。 (舉例來說,在構建JValue時,lift-json知道如何過濾選項)。
有什麼建議嗎? (P.S.我已經簡化了這裏的問題)
也許如果你解釋你的目的。 'String'和'Option [String]'顯然是兩種不同的類型,所以你不清楚爲什麼你要能夠添加到'Map'中。 – 2012-07-10 15:52:06
它用於構建具有「真實」值和選項值(提取)的映射的目的,但僅當它們是某些(而不是無)時。 – Albert 2012-07-10 16:13:28
如果三個返回None,它是否仍然需要添加到地圖? – Brian 2012-07-10 17:21:19