Scala将项添加到seq会导致类型为Equals

时间:2017-09-03 16:30:28

标签: scala playframework

我正在尝试理解此代码的行为:

enter image description here

  def getListsByLC(lcId: Int): Action[AnyContent] = Action.async {
    listRepo.getListsByLC(lcId).flatMap { lists =>
      val newLists: Seq[Future[Seq[List]]] = lists.map { list =>
        itemRepo.getItemsByList(list.id).map { items =>
          list.items.get :+ items
        }
      }


      Future.sequence(newLists).map(_.flatten).map { lists =>
        Ok(Json.obj("lists" -> lists))
      }
    }
  }

我有seq个列表,List内还有seqItem。我想将items添加到每个对应的list。我的编译器以某种方式告诉我lists.map { ... }的返回值为Equals。我找不到有关此行为的任何文档。我究竟做错了什么?我错过了什么吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

Equals是一个Scala特征,定义为“包含相等操作的特征”。这是代码中的意外行为。这可能意味着您的代码未返回预期的返回类型。我强烈怀疑它与:+函数有关。

在此处阅读有关列表连接的更多信息:https://alvinalexander.com/scala/how-merge-scala-lists-concatenate