3

Can a fold be used here to convert from a List[JsObject] to JsArray?

    def getJsonArray(list: List[JsObject]): JsArray = {
        def go(l: List[JsObject], acc: JsArray) : JsArray = l match {
            case x :: xs => go(xs, acc ++ Json.arr(x))
            case Nil => acc
        }
        go(list, JsArray())
    }
4

1 に答える 1

6

はい、これはほぼ同等です。

  def getJsonArray(list: List[JsObject]): JsArray = {
    list.foldLeft(JsArray())((acc, x) => acc ++ Json.arr(x))
  }
于 2013-10-16T19:56:09.237 に答える