具有不同的價值類型的地圖結合我有工作了下面的代碼:如何在斯卡拉
case class Step() {
def bindings(): Map[String, Any] = ???
}
class Builder {
private val globalBindings = scala.collection.mutable.HashMap.empty[String, Any]
private val steps = scala.collection.mutable.ArrayBuffer.empty[Step]
private def context: Map[String, Any] =
globalBindings.foldLeft(Map[String, Any]())((l, r) => l + r) ++ Map[String, Any]("steps" -> steps.foldLeft(Vector[Map[String, Any]]())((l, r) => l.+:(r.bindings)))
}
但我認爲它可以簡化,從而不需要在「語境」法第一foldLeft 。
期望的結果是生成一個映射,其中的條目值是String,稍後將調用toString的對象或返回String的函數。
這是我可以用Scala的類型系統做的最好的,還是我可以讓代碼更清晰?
TIA
最好遠離「任何」99%的時間 - 你不是在寫Java(已經):) –
爲什麼值類型必須有所不同?他們都不都評價爲「字符串」嗎?它可以是一個函數,將_evaluates_賦值爲'String'。該函數應該能夠處理如何評估給定字符串值的邏輯。 –